Annotation of embedaddon/php/ext/oci8/tests/bug37220.phpt, revision 1.1
1.1 ! misho 1: --TEST--
! 2: Bug #37220 (LOB Type mismatch when using windows & oci8.dll)
! 3: --SKIPIF--
! 4: <?php
! 5: $target_dbs = array('oracledb' => true, 'timesten' => false); // test runs on these DBs
! 6: require(dirname(__FILE__).'/skipif.inc');
! 7: ?>
! 8: --FILE--
! 9: <?php
! 10:
! 11: require dirname(__FILE__).'/connect.inc';
! 12:
! 13: // Initialization
! 14:
! 15: $stmtarray = array(
! 16: "create table bug37220_tab( mycolumn xmltype not null)",
! 17: "insert into bug37220_tab values(xmltype('<THETAG myID=\"1234\"></THETAG>'))"
! 18: );
! 19:
! 20: oci8_test_sql_execute($c, $stmtarray);
! 21:
! 22: // Now let's update the row where myId = 1234 and change the tag
! 23: // 'THETAG' to 'MYTAG' (mycolumn is an XMLTYPE datatype and
! 24: // bug37220_tab a normal Oracle table)
! 25:
! 26: $query = "UPDATE bug37220_tab
! 27: SET bug37220_tab.mycolumn = updateXML(bug37220_tab.mycolumn,'/THETAG',xmltype.createXML(:data))
! 28: WHERE existsNode(bug37220_tab.mycolumn,'/THETAG[@myID=\"1234\"]') = 1";
! 29: $stmt = oci_parse ($c, $query);
! 30: $clob = oci_new_descriptor($c, OCI_D_LOB);
! 31: oci_bind_by_name($stmt, ':data', $clob, -1, OCI_B_CLOB);
! 32: $clob->writetemporary("<MYTAG/>", OCI_TEMP_CLOB);
! 33: $success = oci_execute($stmt, OCI_COMMIT_ON_SUCCESS);
! 34: oci_free_statement($stmt);
! 35: $clob->close();
! 36:
! 37: // Query back the change
! 38:
! 39: $query = "select * from bug37220_tab";
! 40: $stmt = oci_parse ($c, $query);
! 41:
! 42: oci_execute($stmt);
! 43:
! 44: while ($row = oci_fetch_array($stmt, OCI_ASSOC+OCI_RETURN_NULLS)) {
! 45: foreach ($row as $item) {
! 46: echo trim($item)."\n";
! 47: }
! 48: echo "\n";
! 49: }
! 50:
! 51: // Cleanup
! 52:
! 53: $stmtarray = array(
! 54: "drop table bug37220_tab"
! 55: );
! 56:
! 57: oci8_test_sql_execute($c, $stmtarray);
! 58:
! 59: echo "Done\n";
! 60:
! 61: ?>
! 62: --EXPECT--
! 63: <MYTAG/>
! 64:
! 65: Done
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>