Annotation of embedaddon/php/ext/oci8/tests/bind_char_1_11gR1.phpt, revision 1.1.1.1
1.1 misho 1: --TEST--
2: SELECT oci_bind_by_name with SQLT_AFC aka CHAR
3: --SKIPIF--
4: <?php
5: if (!extension_loaded('oci8')) die ("skip no oci8 extension");
6: require(dirname(__FILE__)."/connect.inc");
7: // The bind buffer size edge cases seem to change each DB version.
8: if (preg_match('/Release 11\.1\./', oci_server_version($c), $matches) !== 1) {
9: if (preg_match('/Release 11\.2\.0\.3/', oci_server_version($c), $matches) !== 1) {
10: die("skip expected output only valid when using Oracle 11gR1 or 11.2.0.3 databases");
11: }
12: }
13: ?>
14: --ENV--
15: NLS_LANG=
16: --FILE--
17: <?php
18:
19: // Output is for 32 bit client to 64bit 11.1.0.6
20:
21: require(dirname(__FILE__).'/connect.inc');
22:
23: // Initialization
24:
25: $stmtarray = array(
26: "drop table bind_char_tab",
27: "create table bind_char_tab (id number, c1 char(10), c2 varchar2(10))",
28: "insert into bind_char_tab values (1, 'abc', NULL)",
29: "insert into bind_char_tab values (2, NULL, 'abc')",
30: "insert into bind_char_tab values (3, NULL, 'abc ')"
31: );
32:
33: oci8_test_sql_execute($c, $stmtarray);
34:
35: // Run Test
36:
37: echo "*** Non-null Data Tests against CHAR***\n";
38:
39: $bv1 = 'abc';
40:
41: echo "Test 1.1: Type: default. Length: default\n";
42: $s = oci_parse($c, "select * from bind_char_tab where c1 = :bv");
43: $r = oci_bind_by_name($s, ":bv", $bv1);
44: if ($r)
45: do_e_q($s);
46:
47: echo "Test 1.2: Type: AFC. Length: default\n";
48: $r = oci_bind_by_name($s, ":bv", $bv1, -1, SQLT_AFC);
49: if ($r)
50: do_e_q($s);
51:
52: echo "Test 1.3: Type: AFC: Length: 0\n";
53: $r = oci_bind_by_name($s, ":bv", $bv1, 0, SQLT_AFC);
54: if ($r)
55: do_e_q($s);
56:
57: echo "Test 1.4: Type: AFC: Length: strlen\n";
58: $r = oci_bind_by_name($s, ":bv", $bv1, strlen($bv1), SQLT_AFC);
59: if ($r)
60: do_e_q($s);
61:
62: echo "Test 1.5: Type: AFC. Length: strlen-1\n";
63: $r = oci_bind_by_name($s, ":bv", $bv1, strlen($bv1)-1, SQLT_AFC);
64: if ($r)
65: do_e_q($s);
66:
67: echo "Test 1.6: Type: AFC. Length: strlen+1\n";
68: $r = oci_bind_by_name($s, ":bv", $bv1, strlen($bv1)+1, SQLT_AFC);
69: if ($r)
70: do_e_q($s);
71:
72: echo "\n\n*** NULL data tests against CHAR ***\n";
73:
74: $bv1 = null;
75:
76: echo "Test 2.1: Type: default. Length: default\n";
77: $s = oci_parse($c, "select * from bind_char_tab where c1 = :bv");
78: $r = oci_bind_by_name($s, ":bv", $bv1);
79: if ($r)
80: do_e_q($s);
81:
82: echo "Test 2.2: Type: AFC. Length: default\n";
83: $r = oci_bind_by_name($s, ":bv", $bv1, -1, SQLT_AFC);
84: if ($r)
85: do_e_q($s);
86:
87: echo "Test 2.3: Type: AFC: Length: 0\n";
88: $r = oci_bind_by_name($s, ":bv", $bv1, 0, SQLT_AFC);
89: if ($r)
90: do_e_q($s);
91:
92: echo "Test 2.4: Type: AFC: Length: strlen\n";
93: $r = oci_bind_by_name($s, ":bv", $bv1, strlen($bv1), SQLT_AFC);
94: if ($r)
95: do_e_q($s);
96:
97: echo "Test 2.5: Type: AFC. Length: strlen-1\n";
98: $r = oci_bind_by_name($s, ":bv", $bv1, strlen($bv1)-1, SQLT_AFC);
99: if ($r)
100: do_e_q($s);
101:
102: echo "Test 2.6: Type: AFC. Length: strlen+1\n";
103: $r = oci_bind_by_name($s, ":bv", $bv1, strlen($bv1)+1, SQLT_AFC);
104: if ($r)
105: do_e_q($s);
106:
107:
108: echo "\n\n*** Non-null Data Tests against VARCHAR2***\n";
109:
110: $bv1 = 'abc';
111:
112: echo "Test 3.1: Type: default. Length: default\n";
113: $s = oci_parse($c, "select * from bind_char_tab where c2 = :bv");
114: $r = oci_bind_by_name($s, ":bv", $bv1);
115: if ($r)
116: do_e_q($s);
117:
118: echo "Test 3.2: Type: AFC. Length: default\n";
119: $r = oci_bind_by_name($s, ":bv", $bv1, -1, SQLT_AFC);
120: if ($r)
121: do_e_q($s);
122:
123: echo "Test 3.3: Type: AFC: Length: 0\n";
124: $r = oci_bind_by_name($s, ":bv", $bv1, 0, SQLT_AFC);
125: if ($r)
126: do_e_q($s);
127:
128: echo "Test 3.4: Type: AFC: Length: strlen\n";
129: $r = oci_bind_by_name($s, ":bv", $bv1, strlen($bv1), SQLT_AFC);
130: if ($r)
131: do_e_q($s);
132:
133: echo "Test 3.5: Type: AFC. Length: strlen-1\n";
134: $r = oci_bind_by_name($s, ":bv", $bv1, strlen($bv1)-1, SQLT_AFC);
135: if ($r)
136: do_e_q($s);
137:
138: echo "Test 3.6: Type: AFC. Length: strlen+1\n";
139: $r = oci_bind_by_name($s, ":bv", $bv1, strlen($bv1)+1, SQLT_AFC);
140: if ($r)
141: do_e_q($s);
142:
143:
144: echo "\n\n*** NULL data tests against VARCHAR2 ***\n";
145:
146: $bv1 = null;
147:
148: echo "Test 4.1: Type: default. Length: default\n";
149: $s = oci_parse($c, "select * from bind_char_tab where c2 = :bv");
150: $r = oci_bind_by_name($s, ":bv", $bv1);
151: if ($r)
152: do_e_q($s);
153:
154: echo "Test 4.2: Type: AFC. Length: default\n";
155: $r = oci_bind_by_name($s, ":bv", $bv1, -1, SQLT_AFC);
156: if ($r)
157: do_e_q($s);
158:
159: echo "Test 4.3: Type: AFC: Length: 0\n";
160: $r = oci_bind_by_name($s, ":bv", $bv1, 0, SQLT_AFC);
161: if ($r)
162: do_e_q($s);
163:
164: echo "Test 4.4: Type: AFC: Length: strlen\n";
165: $r = oci_bind_by_name($s, ":bv", $bv1, strlen($bv1), SQLT_AFC);
166: if ($r)
167: do_e_q($s);
168:
169: echo "Test 4.5: Type: AFC. Length: strlen-1\n";
170: $r = oci_bind_by_name($s, ":bv", $bv1, strlen($bv1)-1, SQLT_AFC);
171: if ($r)
172: do_e_q($s);
173:
174: echo "Test 4.6: Type: AFC. Length: strlen+1\n";
175: $r = oci_bind_by_name($s, ":bv", $bv1, strlen($bv1)+1, SQLT_AFC);
176: if ($r)
177: do_e_q($s);
178:
179:
180:
181: function do_e_q($s)
182: {
183: echo " Querying:\n";
184:
185: $r = @oci_execute($s);
186: if (!$r) {
187: $m = oci_error($s);
188: echo " Oci_execute error ORA-".$m['code']." Exiting Query\n";
189: return;
190: }
191: while ($row = oci_fetch_array($s, OCI_ASSOC+OCI_RETURN_NULLS)) {
192: foreach ($row as $item) {
193: echo " :" . $item . ":\n";
194: }
195: }
196: }
197:
198: // Cleanup
199: $stmtarray = array(
200: "drop table bind_char_tab"
201: );
202:
203: oci8_test_sql_execute($c, $stmtarray);
204:
205: echo "Done\n";
206:
207: ?>
208: --EXPECT--
209: *** Non-null Data Tests against CHAR***
210: Test 1.1: Type: default. Length: default
211: Querying:
212: Test 1.2: Type: AFC. Length: default
213: Querying:
214: :1:
215: :abc :
216: ::
217: Test 1.3: Type: AFC: Length: 0
218: Querying:
219: Oci_execute error ORA-1460 Exiting Query
220: Test 1.4: Type: AFC: Length: strlen
221: Querying:
222: :1:
223: :abc :
224: ::
225: Test 1.5: Type: AFC. Length: strlen-1
226: Querying:
227: Oci_execute error ORA-1460 Exiting Query
228: Test 1.6: Type: AFC. Length: strlen+1
229: Querying:
230: :1:
231: :abc :
232: ::
233:
234:
235: *** NULL data tests against CHAR ***
236: Test 2.1: Type: default. Length: default
237: Querying:
238: Test 2.2: Type: AFC. Length: default
239: Querying:
240: Test 2.3: Type: AFC: Length: 0
241: Querying:
242: Test 2.4: Type: AFC: Length: strlen
243: Querying:
244: Test 2.5: Type: AFC. Length: strlen-1
245: Querying:
246: Test 2.6: Type: AFC. Length: strlen+1
247: Querying:
248:
249:
250: *** Non-null Data Tests against VARCHAR2***
251: Test 3.1: Type: default. Length: default
252: Querying:
253: :2:
254: ::
255: :abc:
256: Test 3.2: Type: AFC. Length: default
257: Querying:
258: :2:
259: ::
260: :abc:
261: Test 3.3: Type: AFC: Length: 0
262: Querying:
263: Oci_execute error ORA-1460 Exiting Query
264: Test 3.4: Type: AFC: Length: strlen
265: Querying:
266: :2:
267: ::
268: :abc:
269: Test 3.5: Type: AFC. Length: strlen-1
270: Querying:
271: Oci_execute error ORA-1460 Exiting Query
272: Test 3.6: Type: AFC. Length: strlen+1
273: Querying:
274: :2:
275: ::
276: :abc:
277:
278:
279: *** NULL data tests against VARCHAR2 ***
280: Test 4.1: Type: default. Length: default
281: Querying:
282: Test 4.2: Type: AFC. Length: default
283: Querying:
284: Test 4.3: Type: AFC: Length: 0
285: Querying:
286: Test 4.4: Type: AFC: Length: strlen
287: Querying:
288: Test 4.5: Type: AFC. Length: strlen-1
289: Querying:
290: Test 4.6: Type: AFC. Length: strlen+1
291: Querying:
292: Done
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>