diff options
Diffstat (limited to 'ext/oci8/tests/bug44206.phpt')
-rw-r--r-- | ext/oci8/tests/bug44206.phpt | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/ext/oci8/tests/bug44206.phpt b/ext/oci8/tests/bug44206.phpt new file mode 100644 index 0000000000..e5771e4182 --- /dev/null +++ b/ext/oci8/tests/bug44206.phpt @@ -0,0 +1,43 @@ +--TEST-- +Bug #44206 (Test if selecting ref cursors leads to ORA-1000 maximum open cursors reached) +--SKIPIF-- +<?php if (!extension_loaded('oci8')) die ("skip no oci8 extension"); ?> +--FILE-- +<?php + +require dirname(__FILE__).'/connect.inc'; + +// Run Test + +for ($x = 0; $x < 400; $x++) +{ + $stmt = "select cursor (select $x from dual) a, + cursor (select $x from dual) b + from dual"; + $s = oci_parse($c, $stmt); + $r = oci_execute($s); + if (!$r) { + echo "Exiting $x\n"; + exit; + } + $mode = OCI_ASSOC | OCI_RETURN_NULLS; + $result = oci_fetch_array($s, $mode); + oci_execute($result['A']); + oci_execute($result['B']); + oci_fetch_array($result['A'], $mode); + oci_fetch_array($result['B'], $mode); + oci_free_statement($result['A']); + oci_free_statement($result['B']); + oci_free_statement($s); +} + +echo "Completed $x\n"; + +oci_close($c); + +echo "Done\n"; + +?> +--EXPECT-- +Completed 400 +Done |