tony2001 Thu Mar 1 23:29:38 2007 UTC Added files: (Branch: PHP_5_2) /php-src/ext/oci8/tests lob_039.phpt lob_038.phpt lob_037.phpt fetch_all3.phpt bug40415.phpt Log: new tests
http://cvs.php.net/viewvc.cgi/php-src/ext/oci8/tests/lob_039.phpt?view=markup&rev=1.1 Index: php-src/ext/oci8/tests/lob_039.phpt +++ php-src/ext/oci8/tests/lob_039.phpt --TEST-- Test CLOB->write() for multiple inserts --SKIPIF-- <?php if (!extension_loaded('oci8')) die("skip no oci8 extension"); ?> --FILE-- <?php
require dirname(__FILE__).'/connect.inc'; require dirname(__FILE__).'/create_table.inc'; echo "Test 1: CLOB\n"; $ora_sql = "INSERT INTO ".$schema.$table_name." (clob) VALUES (empty_clob()) RETURNING clob INTO :v_clob "; $s = oci_parse($c,$ora_sql); $clob = oci_new_descriptor($c,OCI_DTYPE_LOB); oci_bind_by_name($s,":v_clob", $clob,-1,OCI_B_CLOB); oci_execute($s, OCI_DEFAULT); var_dump($clob->write("clob test 1")); oci_execute($s, OCI_DEFAULT); var_dump($clob->write("clob test 2")); oci_execute($s, OCI_DEFAULT); var_dump($clob->write("clob test 3")); $s = oci_parse($c,"select clob from ".$schema.$table_name); var_dump(oci_execute($s)); oci_fetch_all($s, $res); var_dump($res); require dirname(__FILE__).'/drop_table.inc'; echo "Done\n"; ?> --EXPECT-- Test 1: CLOB int(11) int(11) int(11) bool(true) array(1) { ["CLOB"]=> array(3) { [0]=> string(11) "clob test 1" [1]=> string(11) "clob test 2" [2]=> string(11) "clob test 3" } } Done http://cvs.php.net/viewvc.cgi/php-src/ext/oci8/tests/lob_038.phpt?view=markup&rev=1.1 Index: php-src/ext/oci8/tests/lob_038.phpt +++ php-src/ext/oci8/tests/lob_038.phpt --TEST-- Array fetch CLOB and BLOB --SKIPIF-- <?php if (!extension_loaded('oci8')) die("skip no oci8 extension"); ?> --FILE-- <?php require dirname(__FILE__).'/connect.inc'; require dirname(__FILE__).'/create_table.inc'; echo "Test 1: CLOB\n"; $ora_sql = "INSERT INTO ".$schema.$table_name." (clob) VALUES (empty_clob()) RETURNING clob INTO :v_clob "; $s = oci_parse($c,$ora_sql); $clob = oci_new_descriptor($c,OCI_DTYPE_LOB); oci_bind_by_name($s,":v_clob", $clob,-1,OCI_B_CLOB); oci_execute($s, OCI_DEFAULT); var_dump($clob->save("clob test 1")); oci_execute($s, OCI_DEFAULT); var_dump($clob->save("clob test 2")); oci_execute($s, OCI_DEFAULT); var_dump($clob->save("clob test 3")); $s = oci_parse($c,"select clob from ".$schema.$table_name); var_dump(oci_execute($s)); oci_fetch_all($s, $res); var_dump($res); echo "Test 1b\n"; $s = oci_parse($c, "select clob from ".$schema.$table_name); var_dump(oci_execute($s, OCI_DEFAULT)); while ($row = oci_fetch_array($s, OCI_ASSOC)) { var_dump($row); $result = $row['CLOB']->load(); var_dump($result); } require dirname(__FILE__).'/drop_table.inc'; echo "Test 2: BLOB\n"; require dirname(__FILE__).'/create_table.inc'; $ora_sql = "INSERT INTO ".$schema.$table_name." (blob) VALUES (empty_blob()) RETURNING blob INTO :v_blob "; $s = oci_parse($c,$ora_sql); $blob = oci_new_descriptor($c,OCI_DTYPE_LOB); oci_bind_by_name($s,":v_blob", $blob,-1,OCI_B_BLOB); oci_execute($s, OCI_DEFAULT); var_dump($blob->save("blob test 1")); oci_execute($s, OCI_DEFAULT); var_dump($blob->save("blob test 2")); oci_execute($s, OCI_DEFAULT); var_dump($blob->save("blob test 3")); $s = oci_parse($c, "select blob from ".$schema.$table_name); var_dump(oci_execute($s)); oci_fetch_all($s, $res); var_dump($res); echo "Test 2b\n"; $s = oci_parse($c, "select blob from ".$schema.$table_name); var_dump(oci_execute($s, OCI_DEFAULT)); while ($row = oci_fetch_array($s, OCI_ASSOC)) { var_dump($row); $result = $row['BLOB']->load(); var_dump($result); } require dirname(__FILE__).'/drop_table.inc'; echo "Done\n"; ?> --EXPECTF-- Test 1: CLOB bool(true) bool(true) bool(true) bool(true) array(1) { ["CLOB"]=> array(3) { [0]=> string(11) "clob test 1" [1]=> string(11) "clob test 2" [2]=> string(11) "clob test 3" } } Test 1b bool(true) array(1) { ["CLOB"]=> object(OCI-Lob)#%d (1) { ["descriptor"]=> resource(%d) of type (oci8 descriptor) } } string(11) "clob test 1" array(1) { ["CLOB"]=> object(OCI-Lob)#%d (1) { ["descriptor"]=> resource(%d) of type (oci8 descriptor) } } string(11) "clob test 2" array(1) { ["CLOB"]=> object(OCI-Lob)#%d (1) { ["descriptor"]=> resource(%d) of type (oci8 descriptor) } } string(11) "clob test 3" Test 2: BLOB bool(true) bool(true) bool(true) bool(true) array(1) { ["BLOB"]=> array(3) { [0]=> string(11) "blob test 1" [1]=> string(11) "blob test 2" [2]=> string(11) "blob test 3" } } Test 2b bool(true) array(1) { ["BLOB"]=> object(OCI-Lob)#%d (1) { ["descriptor"]=> resource(%d) of type (oci8 descriptor) } } string(11) "blob test 1" array(1) { ["BLOB"]=> object(OCI-Lob)#%d (1) { ["descriptor"]=> resource(%d) of type (oci8 descriptor) } } string(11) "blob test 2" array(1) { ["BLOB"]=> object(OCI-Lob)#%d (1) { ["descriptor"]=> resource(%d) of type (oci8 descriptor) } } string(11) "blob test 3" Done --UEXPECTF-- Test 1: CLOB bool(true) bool(true) bool(true) bool(true) array(1) { [u"CLOB"]=> array(3) { [0]=> unicode(11) "clob test 1" [1]=> unicode(11) "clob test 2" [2]=> unicode(11) "clob test 3" } } Test 1b bool(true) array(1) { [u"CLOB"]=> object(OCI-Lob)#%d (1) { [u"descriptor"]=> resource(%d) of type (oci8 descriptor) } } unicode(11) "clob test 1" array(1) { [u"CLOB"]=> object(OCI-Lob)#%d (1) { [u"descriptor"]=> resource(%d) of type (oci8 descriptor) } } unicode(11) "clob test 2" array(1) { [u"CLOB"]=> object(OCI-Lob)#%d (1) { [u"descriptor"]=> resource(%d) of type (oci8 descriptor) } } unicode(11) "clob test 3" Test 2: BLOB bool(true) bool(true) bool(true) bool(true) array(1) { [u"BLOB"]=> array(3) { [0]=> string(22) "b [1]=> string(22) "b [2]=> string(22) "b } } Test 2b bool(true) array(1) { [u"BLOB"]=> object(OCI-Lob)#%d (1) { [u"descriptor"]=> resource(%d) of type (oci8 descriptor) } } string(22) "b array(1) { [u"BLOB"]=> object(OCI-Lob)#%d (1) { [u"descriptor"]=> resource(%d) of type (oci8 descriptor) } } string(22) "b array(1) { [u"BLOB"]=> object(OCI-Lob)#%d (1) { [u"descriptor"]=> resource(%d) of type (oci8 descriptor) } } string(22) "b Done http://cvs.php.net/viewvc.cgi/php-src/ext/oci8/tests/lob_037.phpt?view=markup&rev=1.1 Index: php-src/ext/oci8/tests/lob_037.phpt +++ php-src/ext/oci8/tests/lob_037.phpt --TEST-- Fetching two different lobs and using them after fetch --SKIPIF-- <?php if (!extension_loaded('oci8')) die("skip no oci8 extension"); ?> --FILE-- <?php require dirname(__FILE__).'/connect.inc'; require dirname(__FILE__).'/create_table.inc'; /* insert the first LOB */ $ora_sql = "INSERT INTO ".$schema.$table_name." (blob) VALUES (empty_blob()) RETURNING blob INTO :v_blob "; $s = oci_parse($c,$ora_sql); $blob = oci_new_descriptor($c,OCI_DTYPE_LOB); oci_bind_by_name($s,":v_blob", $blob,-1,OCI_B_BLOB); oci_execute($s, OCI_DEFAULT); var_dump($blob->write("first lob data")); oci_commit($c); /* insert the second LOB */ $ora_sql = "INSERT INTO ".$schema.$table_name." (blob) VALUES (empty_blob()) RETURNING blob INTO :v_blob "; $s = oci_parse($c,$ora_sql); $blob = oci_new_descriptor($c,OCI_DTYPE_LOB); oci_bind_by_name($s,":v_blob", $blob,-1,OCI_B_BLOB); oci_execute($s, OCI_DEFAULT); var_dump($blob->write("second lob data")); oci_commit($c); /* select both */ $ora_sql = "SELECT blob FROM ".$schema.$table_name; $s = oci_parse($c,$ora_sql); oci_execute($s, OCI_DEFAULT); $rows = array(); $rows[0] = oci_fetch_assoc($s); $rows[1] = oci_fetch_assoc($s); var_dump($rows[0]['BLOB']->read(1000)); var_dump($rows[1]['BLOB']->read(1000)); require dirname(__FILE__).'/drop_table.inc'; echo "Done\n"; ?> --EXPECT-- int(14) int(15) string(14) "first lob data" string(15) "second lob data" Done --UEXPECT-- int(28) int(30) string(28) "f string(30) "s Done http://cvs.php.net/viewvc.cgi/php-src/ext/oci8/tests/fetch_all3.phpt?view=markup&rev=1.1 Index: php-src/ext/oci8/tests/fetch_all3.phpt +++ php-src/ext/oci8/tests/fetch_all3.phpt http://cvs.php.net/viewvc.cgi/php-src/ext/oci8/tests/bug40415.phpt?view=markup&rev=1.1 Index: php-src/ext/oci8/tests/bug40415.phpt +++ php-src/ext/oci8/tests/bug40415.phpt --TEST-- Bug #40415 (Using oci_fetchall with nested cursors) --SKIPIF-- <?php if (!extension_loaded('oci8')) die("skip no oci8 extension"); ?> --FILE-- <?php require dirname(__FILE__)."/connect.inc"; // Setup $create_1 = "CREATE TABLE t1 (id1 INTEGER)"; $create_2 = "CREATE TABLE t2 (id2 INTEGER)"; $drop_1 = "DROP TABLE t1"; $drop_2 = "DROP TABLE t2"; $s1 = oci_parse($c, $drop_1); $s2 = oci_parse($c, $drop_2); @oci_execute($s1); @oci_execute($s2); $s1 = oci_parse($c, $create_1); $s2 = oci_parse($c, $create_2); oci_execute($s1); oci_execute($s2); for($i=1; $i < 4; $i++) { $insert = "INSERT INTO t1 VALUES(1".$i.")"; $s = oci_parse($c, $insert); oci_execute($s); } for($i=1; $i < 4; $i++) { $insert = "INSERT INTO t2 VALUES(2".$i.")"; $s = oci_parse($c, $insert); oci_execute($s); } function do_assoc($c) { $query = "SELECT t1.*, CURSOR( SELECT * FROM t2 ) AS CURSOR FROM t1"; $stmt = oci_parse($c, $query); oci_execute($stmt); while ($row = oci_fetch_assoc($stmt)) { print "Got row \"".$row['ID1']."\". Now getting nested cursor:\n"; var_dump(oci_execute($row['CURSOR'])); while ($row_n = oci_fetch_assoc($row['CURSOR']) ) { var_dump($row_n); } } } function do_all($c) { $query = "SELECT t1.*, CURSOR( SELECT * FROM t2 ) AS CURSOR FROM t1"; $stmt = oci_parse($c, $query); oci_execute($stmt); $rc1 = oci_fetch_all($stmt, $res); echo "Rows returned $rc1\n"; var_dump($res); foreach ($res['CURSOR'] as $cv) { echo "Getting nested cursor\n"; var_dump(oci_execute($cv)); $rc2 = oci_fetch_all($cv, $res2); var_dump($res2); } } echo "Test 1: Associate fetch of nested cursor\n"; do_assoc($c); echo "\nTest 2: fetchall of nested cursor\n"; do_all($c); // Cleanup $s1 = oci_parse($c, $drop_1); $s2 = oci_parse($c, $drop_2); @oci_execute($s1); @oci_execute($s2); echo "Done\n"; ?> --EXPECTF-- Test 1: Associate fetch of nested cursor Got row "11". Now getting nested cursor: bool(true) array(1) { ["ID2"]=> string(2) "21" } array(1) { ["ID2"]=> string(2) "22" } array(1) { ["ID2"]=> string(2) "23" } Got row "12". Now getting nested cursor: bool(true) array(1) { ["ID2"]=> string(2) "21" } array(1) { ["ID2"]=> string(2) "22" } array(1) { ["ID2"]=> string(2) "23" } Got row "13". Now getting nested cursor: bool(true) array(1) { ["ID2"]=> string(2) "21" } array(1) { ["ID2"]=> string(2) "22" } array(1) { ["ID2"]=> string(2) "23" } Test 2: fetchall of nested cursor Rows returned 3 array(2) { ["ID1"]=> array(3) { [0]=> string(2) "11" [1]=> string(2) "12" [2]=> string(2) "13" } ["CURSOR"]=> array(3) { [0]=> resource(%d) of type (oci8 statement) [1]=> resource(%d) of type (oci8 statement) [2]=> resource(%d) of type (oci8 statement) } } Getting nested cursor bool(true) array(1) { ["ID2"]=> array(3) { [0]=> string(2) "21" [1]=> string(2) "22" [2]=> string(2) "23" } } Getting nested cursor bool(true) array(1) { ["ID2"]=> array(3) { [0]=> string(2) "21" [1]=> string(2) "22" [2]=> string(2) "23" } } Getting nested cursor bool(true) array(1) { ["ID2"]=> array(3) { [0]=> string(2) "21" [1]=> string(2) "22" [2]=> string(2) "23" } } Done --UEXPECTF-- Test 1: Associate fetch of nested cursor Got row "11". Now getting nested cursor: bool(true) array(1) { [u"ID2"]=> unicode(2) "21" } array(1) { [u"ID2"]=> unicode(2) "22" } array(1) { [u"ID2"]=> unicode(2) "23" } Got row "12". Now getting nested cursor: bool(true) array(1) { [u"ID2"]=> unicode(2) "21" } array(1) { [u"ID2"]=> unicode(2) "22" } array(1) { [u"ID2"]=> unicode(2) "23" } Got row "13". Now getting nested cursor: bool(true) array(1) { [u"ID2"]=> unicode(2) "21" } array(1) { [u"ID2"]=> unicode(2) "22" } array(1) { [u"ID2"]=> unicode(2) "23" } Test 2: fetchall of nested cursor Rows returned 3 array(2) { [u"ID1"]=> array(3) { [0]=> unicode(2) "11" [1]=> unicode(2) "12" [2]=> unicode(2) "13" } [u"CURSOR"]=> array(3) { [0]=> resource(22) of type (oci8 statement) [1]=> resource(23) of type (oci8 statement) [2]=> resource(24) of type (oci8 statement) } } Getting nested cursor bool(true) array(1) { [u"ID2"]=> array(3) { [0]=> unicode(2) "21" [1]=> unicode(2) "22" [2]=> unicode(2) "23" } } Getting nested cursor bool(true) array(1) { [u"ID2"]=> array(3) { [0]=> unicode(2) "21" [1]=> unicode(2) "22" [2]=> unicode(2) "23" } } Getting nested cursor bool(true) array(1) { [u"ID2"]=> array(3) { [0]=> unicode(2) "21" [1]=> unicode(2) "22" [2]=> unicode(2) "23" } } Done
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php