Annotation of embedaddon/php/ext/oci8/tests/xmltype_01.phpt, revision 1.1.1.2

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

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>