Annotation of embedaddon/php/ext/oci8/tests/xmltype_01.phpt, revision 1.1.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>