lob_041.phpt 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. --TEST--
  2. Check LOBS are valid after statement free
  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. // Initialization
  14. $stmtarray = array(
  15. "DROP table lob_041_tab",
  16. "CREATE table lob_041_tab(c1 CLOB)",
  17. "INSERT INTO lob_041_tab VALUES('test data')"
  18. );
  19. oci8_test_sql_execute($c, $stmtarray);
  20. echo "Test 1 - explicit statement close\n";
  21. $s = oci_parse($c, "SELECT C1 FROM lob_041_tab");
  22. $desc = oci_new_descriptor($c, OCI_DTYPE_LOB);
  23. oci_define_by_name($s, "C1", $desc);
  24. oci_execute($s);
  25. $data = oci_fetch_assoc($s);
  26. oci_free_statement($s);
  27. echo $data['C1']->load(), "\n";
  28. oci_free_descriptor($desc);
  29. echo "\nTest 2 - implicit statement close\n";
  30. $s = oci_parse($c, "SELECT C1 FROM lob_041_tab");
  31. $desc = oci_new_descriptor($c, OCI_DTYPE_LOB);
  32. oci_define_by_name($s, "C1", $desc);
  33. oci_execute($s);
  34. $data = oci_fetch_assoc($s);
  35. $s = null;
  36. echo $data['C1']->load(), "\n";
  37. oci_free_descriptor($desc);
  38. var_dump($desc);
  39. echo "\nTest 3 - no preallocated descriptor\n";
  40. $s = oci_parse($c, "SELECT C1 FROM lob_041_tab");
  41. oci_execute($s);
  42. $data = oci_fetch_assoc($s);
  43. $s = null;
  44. echo $data['C1']->load(), "\n";
  45. var_dump($data);
  46. // Cleanup
  47. echo "Done\n";
  48. $stmtarray = array(
  49. "DROP table lob_041_tab"
  50. );
  51. oci8_test_sql_execute($c, $stmtarray);
  52. ?>
  53. --EXPECTF--
  54. Test 1 - explicit statement close
  55. test data
  56. Test 2 - implicit statement close
  57. test data
  58. object(OCILob)#%d (1) {
  59. ["descriptor"]=>
  60. resource(%d) of type (Unknown)
  61. }
  62. Test 3 - no preallocated descriptor
  63. test data
  64. array(1) {
  65. ["C1"]=>
  66. object(OCILob)#%d (1) {
  67. ["descriptor"]=>
  68. resource(%d) of type (oci8 descriptor)
  69. }
  70. }
  71. Done