lob_038.phpt 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194
  1. --TEST--
  2. Array fetch CLOB and BLOB
  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. require __DIR__.'/create_table.inc';
  14. echo "Test 1: CLOB\n";
  15. $ora_sql = "INSERT INTO
  16. ".$schema.$table_name." (clob)
  17. VALUES (empty_clob())
  18. RETURNING
  19. clob
  20. INTO :v_clob ";
  21. $s = oci_parse($c,$ora_sql);
  22. $clob = oci_new_descriptor($c,OCI_DTYPE_LOB);
  23. oci_bind_by_name($s,":v_clob", $clob,-1,OCI_B_CLOB);
  24. oci_execute($s, OCI_DEFAULT);
  25. var_dump($clob->save("clob test 1"));
  26. oci_execute($s, OCI_DEFAULT);
  27. var_dump($clob->save("clob test 2"));
  28. oci_execute($s, OCI_DEFAULT);
  29. var_dump($clob->save("clob test 3"));
  30. $s = oci_parse($c,"select clob from ".$schema.$table_name);
  31. var_dump(oci_execute($s));
  32. oci_fetch_all($s, $res);
  33. var_dump($res);
  34. echo "Test 1b\n";
  35. $s = oci_parse($c, "select clob from ".$schema.$table_name);
  36. var_dump(oci_execute($s, OCI_DEFAULT));
  37. while ($row = oci_fetch_array($s, OCI_ASSOC)) {
  38. var_dump($row);
  39. $result = $row['CLOB']->load();
  40. var_dump($result);
  41. }
  42. require __DIR__.'/drop_table.inc';
  43. echo "Test 2: BLOB\n";
  44. require __DIR__.'/create_table.inc';
  45. $ora_sql = "INSERT INTO
  46. ".$schema.$table_name." (blob)
  47. VALUES (empty_blob())
  48. RETURNING
  49. blob
  50. INTO :v_blob ";
  51. $s = oci_parse($c,$ora_sql);
  52. $blob = oci_new_descriptor($c,OCI_DTYPE_LOB);
  53. oci_bind_by_name($s,":v_blob", $blob,-1,OCI_B_BLOB);
  54. oci_execute($s, OCI_DEFAULT);
  55. var_dump($blob->save("blob test 1"));
  56. oci_execute($s, OCI_DEFAULT);
  57. var_dump($blob->save("blob test 2"));
  58. oci_execute($s, OCI_DEFAULT);
  59. var_dump($blob->save("blob test 3"));
  60. $s = oci_parse($c, "select blob from ".$schema.$table_name);
  61. var_dump(oci_execute($s));
  62. oci_fetch_all($s, $res);
  63. var_dump($res);
  64. echo "Test 2b\n";
  65. $s = oci_parse($c, "select blob from ".$schema.$table_name);
  66. var_dump(oci_execute($s, OCI_DEFAULT));
  67. while ($row = oci_fetch_array($s, OCI_ASSOC)) {
  68. var_dump($row);
  69. $result = $row['BLOB']->load();
  70. var_dump($result);
  71. }
  72. require __DIR__.'/drop_table.inc';
  73. echo "Done\n";
  74. ?>
  75. --EXPECTF--
  76. Test 1: CLOB
  77. bool(true)
  78. bool(true)
  79. bool(true)
  80. bool(true)
  81. array(1) {
  82. ["CLOB"]=>
  83. array(3) {
  84. [0]=>
  85. string(11) "clob test 1"
  86. [1]=>
  87. string(11) "clob test 2"
  88. [2]=>
  89. string(11) "clob test 3"
  90. }
  91. }
  92. Test 1b
  93. bool(true)
  94. array(1) {
  95. ["CLOB"]=>
  96. object(OCILob)#2 (1) {
  97. ["descriptor"]=>
  98. resource(%d) of type (oci8 descriptor)
  99. }
  100. }
  101. string(11) "clob test 1"
  102. array(1) {
  103. ["CLOB"]=>
  104. object(OCILob)#3 (1) {
  105. ["descriptor"]=>
  106. resource(%d) of type (oci8 descriptor)
  107. }
  108. }
  109. string(11) "clob test 2"
  110. array(1) {
  111. ["CLOB"]=>
  112. object(OCILob)#2 (1) {
  113. ["descriptor"]=>
  114. resource(%d) of type (oci8 descriptor)
  115. }
  116. }
  117. string(11) "clob test 3"
  118. Test 2: BLOB
  119. bool(true)
  120. bool(true)
  121. bool(true)
  122. bool(true)
  123. array(1) {
  124. ["BLOB"]=>
  125. array(3) {
  126. [0]=>
  127. string(11) "blob test 1"
  128. [1]=>
  129. string(11) "blob test 2"
  130. [2]=>
  131. string(11) "blob test 3"
  132. }
  133. }
  134. Test 2b
  135. bool(true)
  136. array(1) {
  137. ["BLOB"]=>
  138. object(OCILob)#3 (1) {
  139. ["descriptor"]=>
  140. resource(%d) of type (oci8 descriptor)
  141. }
  142. }
  143. string(11) "blob test 1"
  144. array(1) {
  145. ["BLOB"]=>
  146. object(OCILob)#4 (1) {
  147. ["descriptor"]=>
  148. resource(%d) of type (oci8 descriptor)
  149. }
  150. }
  151. string(11) "blob test 2"
  152. array(1) {
  153. ["BLOB"]=>
  154. object(OCILob)#3 (1) {
  155. ["descriptor"]=>
  156. resource(%d) of type (oci8 descriptor)
  157. }
  158. }
  159. string(11) "blob test 3"
  160. Done