--TEST-- Basic XMLType test --SKIPIF-- --FILE-- 1 Big 12345 20 Curved Red N Tiny Steel '))" ); foreach ($stmts as $q) { $s = oci_parse($c, $q); $r = @oci_execute($s); if (!$r) { $m = oci_error($s); if ($m['code'] != 942) { // table or view doesn't exist echo $m['message'], "\n"; } } } function do_query($c) { $s = oci_parse($c, 'select XMLType.getClobVal(xt_spec) from xtt where xt_id = 1'); oci_execute($s); $row = oci_fetch_row($s); $data = $row[0]->load(); var_dump($data); return($data); } // Check echo "Initial Data\n"; $data = do_query($c); // Manipulate the data using SimpleXML $sx = simplexml_load_string($data); $sx->Hardness = $sx->Hardness - 1; $sx->Nice = 'Y'; // Insert changes using a temporary CLOB $s = oci_parse($c, 'update xtt set xt_spec = XMLType(:clob) where xt_id = 1'); $lob = oci_new_descriptor($c, OCI_D_LOB); oci_bind_by_name($s, ':clob', $lob, -1, OCI_B_CLOB); $lob->writeTemporary($sx->asXml()); oci_execute($s); $lob->close(); // Verify echo "Verify\n"; $data = do_query($c); // Cleanup $stmts = array( "drop table xtt", ); foreach ($stmts as $q) { $s = oci_parse($c, $q); @oci_execute($s); } echo "Done\n"; ?> --EXPECT-- Initial Data string(250) " 1 Big 12345 20 Curved Red N Tiny Steel " Verify string(249) " 1 Big 12345 19 Curved Red Y Tiny Steel " Done