bug44206.phpt 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. --TEST--
  2. Bug #44206 (Test if selecting ref cursors leads to ORA-1000 maximum open cursors reached)
  3. --EXTENSIONS--
  4. oci8
  5. --SKIPIF--
  6. <?php
  7. $target_dbs = array('oracledb' => true, 'timesten' => false); // test runs on these DBs
  8. require(__DIR__.'/skipif.inc');
  9. ?>
  10. --FILE--
  11. <?php
  12. require __DIR__.'/connect.inc';
  13. // Run Test
  14. for ($x = 0; $x < 400; $x++)
  15. {
  16. $stmt = "select cursor (select $x from dual) a,
  17. cursor (select $x from dual) b
  18. from dual";
  19. $s = oci_parse($c, $stmt);
  20. $r = oci_execute($s);
  21. if (!$r) {
  22. echo "Exiting $x\n";
  23. exit;
  24. }
  25. $mode = OCI_ASSOC | OCI_RETURN_NULLS;
  26. $result = oci_fetch_array($s, $mode);
  27. oci_execute($result['A']);
  28. oci_execute($result['B']);
  29. oci_fetch_array($result['A'], $mode);
  30. oci_fetch_array($result['B'], $mode);
  31. oci_free_statement($result['A']);
  32. oci_free_statement($result['B']);
  33. oci_free_statement($s);
  34. }
  35. echo "Completed $x\n";
  36. oci_close($c);
  37. echo "Done\n";
  38. ?>
  39. --EXPECT--
  40. Completed 400
  41. Done