diff options
Diffstat (limited to 'tests/cursors.phpt')
-rw-r--r-- | tests/cursors.phpt | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/tests/cursors.phpt b/tests/cursors.phpt new file mode 100644 index 0000000000..22c89c9c54 --- /dev/null +++ b/tests/cursors.phpt @@ -0,0 +1,65 @@ +--TEST-- +fetching cursor from a statement +--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_sql = "INSERT INTO ".$schema.$table_name." (id, value) VALUES (1,1)"; + +if (!($s = oci_parse($c, $insert_sql))) { + die("oci_parse(insert) failed!\n"); +} + +for ($i = 0; $i<3; $i++) { + if (!oci_execute($s)) { + die("oci_execute(insert) failed!\n"); + } +} + +if (!oci_commit($c)) { + die("oci_commit() failed!\n"); +} + +$sql = "select CURSOR(select * from ".$schema.$table_name.") as curs FROM dual"; +$stmt = oci_parse($c, $sql); + +oci_execute($stmt); + +while ($data = oci_fetch_assoc($stmt)) { + oci_execute($data["CURS"]); + $subdata = oci_fetch_assoc($data["CURS"]); + var_dump($subdata); + var_dump(oci_cancel($data["CURS"])); + $subdata = oci_fetch_assoc($data["CURS"]); + var_dump($subdata); + var_dump(oci_cancel($data["CURS"])); +} + +require dirname(__FILE__)."/drop_table.inc"; + +echo "Done\n"; + +?> +--EXPECTF-- +array(5) { + ["ID"]=> + string(1) "1" + ["VALUE"]=> + string(1) "1" + ["BLOB"]=> + NULL + ["CLOB"]=> + NULL + ["STRING"]=> + NULL +} +bool(true) + +Warning: oci_fetch_assoc(): ORA-01002: fetch out of sequence in %s on line %d +bool(false) +bool(true) +Done |