xref: /PHP-8.0/ext/oci8/tests/lob_041.phpt (revision ff66e494)
1--TEST--
2Check LOBS are valid after statement free
3--SKIPIF--
4<?php
5$target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
6require(__DIR__.'/skipif.inc');
7?>
8--FILE--
9<?php
10
11require __DIR__.'/connect.inc';
12
13// Initialization
14
15$stmtarray = array(
16    "DROP table lob_041_tab",
17    "CREATE table lob_041_tab(c1 CLOB)",
18    "INSERT INTO lob_041_tab VALUES('test data')"
19);
20
21oci8_test_sql_execute($c, $stmtarray);
22
23echo "Test 1 - explicit statement close\n";
24
25$s = oci_parse($c, "SELECT C1 FROM lob_041_tab");
26$desc = oci_new_descriptor($c, OCI_DTYPE_LOB);
27oci_define_by_name($s, "C1", $desc);
28oci_execute($s);
29$data = oci_fetch_assoc($s);
30oci_free_statement($s);
31echo $data['C1']->load(), "\n";
32oci_free_descriptor($desc);
33
34echo "\nTest 2 - implicit statement close\n";
35
36$s = oci_parse($c, "SELECT C1 FROM lob_041_tab");
37$desc = oci_new_descriptor($c, OCI_DTYPE_LOB);
38oci_define_by_name($s, "C1", $desc);
39oci_execute($s);
40$data = oci_fetch_assoc($s);
41$s = null;
42echo $data['C1']->load(), "\n";
43oci_free_descriptor($desc);
44var_dump($desc);
45
46echo "\nTest 3 - no preallocated descriptor\n";
47
48$s = oci_parse($c, "SELECT C1 FROM lob_041_tab");
49oci_execute($s);
50$data = oci_fetch_assoc($s);
51$s = null;
52echo $data['C1']->load(), "\n";
53var_dump($data);
54
55// Cleanup
56
57echo "Done\n";
58
59$stmtarray = array(
60    "DROP table lob_041_tab"
61);
62
63oci8_test_sql_execute($c, $stmtarray);
64
65?>
66--EXPECTF--
67Test 1 - explicit statement close
68test data
69
70Test 2 - implicit statement close
71test data
72object(OCILob)#%d (1) {
73  ["descriptor"]=>
74  resource(%d) of type (Unknown)
75}
76
77Test 3 - no preallocated descriptor
78test data
79array(1) {
80  ["C1"]=>
81  object(OCILob)#%d (1) {
82    ["descriptor"]=>
83    resource(%d) of type (oci8 descriptor)
84  }
85}
86Done
87