Annotation of embedaddon/php/ext/oci8/tests/xmltype_01.phpt, revision 1.1
1.1 ! misho 1: --TEST--
! 2: Basic XMLType test
! 3: --SKIPIF--
! 4: <?php
! 5: if (!extension_loaded("simplexml")) die("skip no simplexml extension");
! 6: $target_dbs = array('oracledb' => true, 'timesten' => false); // test runs on these DBs
! 7: require(dirname(__FILE__).'/skipif.inc');
! 8: --FILE--
! 9: <?php
! 10:
! 11: require(dirname(__FILE__)."/connect.inc");
! 12:
! 13: // Initialization
! 14:
! 15: $stmtarray = array(
! 16: "drop table xtt",
! 17: "create table xtt
! 18: (xt_id number, xt_spec xmltype)
! 19: xmltype xt_spec store as clob",
! 20: "insert into xtt (xt_id, xt_spec) values
! 21: (1,
! 22: xmltype('<?xml version=\"1.0\"?>
! 23: <Xt>
! 24: <XtId>1</XtId>
! 25: <Size>Big</Size>
! 26: <Area>12345</Area>
! 27: <Hardness>20</Hardness>
! 28: <Lip>Curved</Lip>
! 29: <Color>Red</Color>
! 30: <Nice>N</Nice>
! 31: <Compact>Tiny</Compact>
! 32: <Material>Steel</Material>
! 33: </Xt>'))"
! 34: );
! 35:
! 36: oci8_test_sql_execute($c, $stmtarray);
! 37:
! 38: function do_query($c)
! 39: {
! 40: $s = oci_parse($c, 'select XMLType.getClobVal(xt_spec)
! 41: from xtt where xt_id = 1');
! 42: oci_execute($s);
! 43: $row = oci_fetch_row($s);
! 44: $data = $row[0]->load();
! 45: var_dump($data);
! 46: return($data);
! 47: }
! 48:
! 49: // Check
! 50: echo "Initial Data\n";
! 51: $data = do_query($c);
! 52:
! 53: // Manipulate the data using SimpleXML
! 54: $sx = simplexml_load_string($data);
! 55: $sx->Hardness = $sx->Hardness - 1;
! 56: $sx->Nice = 'Y';
! 57:
! 58: // Insert changes using a temporary CLOB
! 59: $s = oci_parse($c, 'update xtt
! 60: set xt_spec = XMLType(:clob)
! 61: where xt_id = 1');
! 62: $lob = oci_new_descriptor($c, OCI_D_LOB);
! 63: oci_bind_by_name($s, ':clob', $lob, -1, OCI_B_CLOB);
! 64: $lob->writeTemporary($sx->asXml());
! 65: oci_execute($s);
! 66: $lob->close();
! 67:
! 68: // Verify
! 69: echo "Verify\n";
! 70: $data = do_query($c);
! 71:
! 72: // Cleanup
! 73:
! 74: $stmtarray = array(
! 75: "drop table xtt",
! 76: );
! 77:
! 78: oci8_test_sql_execute($c, $stmtarray);
! 79:
! 80: echo "Done\n";
! 81:
! 82: ?>
! 83: --EXPECT--
! 84: Initial Data
! 85: string(250) "<?xml version="1.0"?>
! 86: <Xt>
! 87: <XtId>1</XtId>
! 88: <Size>Big</Size>
! 89: <Area>12345</Area>
! 90: <Hardness>20</Hardness>
! 91: <Lip>Curved</Lip>
! 92: <Color>Red</Color>
! 93: <Nice>N</Nice>
! 94: <Compact>Tiny</Compact>
! 95: <Material>Steel</Material>
! 96: </Xt>"
! 97: Verify
! 98: string(249) "<?xml version="1.0"?>
! 99: <Xt>
! 100: <XtId>1</XtId>
! 101: <Size>Big</Size>
! 102: <Area>12345</Area>
! 103: <Hardness>19</Hardness>
! 104: <Lip>Curved</Lip>
! 105: <Color>Red</Color>
! 106: <Nice>Y</Nice>
! 107: <Compact>Tiny</Compact>
! 108: <Material>Steel</Material>
! 109: </Xt>
! 110: "
! 111: Done
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>