Annotation of embedaddon/php/ext/oci8/tests/bind_char_3.phpt, revision 1.1.1.1
1.1 misho 1: --TEST--
2: PL/SQL oci_bind_by_name with SQLT_AFC aka CHAR to CHAR parameter
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 10\.2\./', oci_server_version($c), $matches) !== 1) {
9: if (preg_match('/Release 11\.2\.0\.2/', oci_server_version($c), $matches) !== 2) {
10: die("skip expected output only valid when using Oracle 10gR2 or 11.2.0.2 databases");
11: }
12: }
13: if (preg_match('/^11\./', oci_client_version()) != 1) {
14: die("skip test expected to work only with Oracle 11g or greater version of client");
15: }
16: ?>
17: --ENV--
18: NLS_LANG=
19: --FILE--
20: <?php
21:
22: require(dirname(__FILE__).'/connect.inc');
23:
24: // Initialization
25:
26: $stmtarray = array(
27: "create or replace function bind_char_3_fn(p1 char) return char as begin return p1; end;",
28: );
29:
30: oci8_test_sql_execute($c, $stmtarray);
31:
32: // Run Test
33:
34: echo "Test 1.1 In Length: default. In Type: default. Out Length: default. Out Type: default\n";
35:
36: $s = oci_parse($c, "begin :bv2 := bind_char_3_fn(:bv1); end;");
37: $bv1 = 'abc';
38: $r = oci_bind_by_name($s, ':bv1', $bv1) && oci_bind_by_name($s, ':bv2', $bv2);
39: if ($r)
40: do_e($s);
41: var_dump($bv1, $bv2);
42:
43: echo "Test 1.2 In Length: default. In Type: default. Out Length: 10. Out Type: default\n";
44:
45: $bv1 = 'abc';
46: $r = oci_bind_by_name($s, ':bv1', $bv1) && oci_bind_by_name($s, ':bv2', $bv2, 10);
47: if ($r)
48: do_e($s);
49: var_dump($bv1, $bv2);
50:
51:
52: echo "Test 1.3 In Length: -1. In Type: AFC. Out Length: 10. Out Type: default\n";
53:
54: $bv1 = 'abc';
55: $r = oci_bind_by_name($s, ':bv1', $bv1, -1, SQLT_AFC) && oci_bind_by_name($s, ':bv2', $bv2, 10);
56: if ($r)
57: do_e($s);
58: var_dump($bv1, $bv2);
59:
60:
61:
62: echo "Test 1.4 In Length: -1. In Type: AFC. Out Length: 10. Out Type: AFC\n";
63:
64: $bv1 = 'abc';
65: $r = oci_bind_by_name($s, ':bv1', $bv1, -1, SQLT_AFC) && oci_bind_by_name($s, ':bv2', $bv2, 10, SQLT_AFC);
66: if ($r)
67: do_e($s);
68: var_dump($bv1, $bv2);
69:
70:
71: echo "Test 1.5 In Length: strlen. In Type: AFC. Out Length: strlen(input). Out Type: AFC\n";
72:
73: $bv1 = 'abc';
74: $r = oci_bind_by_name($s, ':bv1', $bv1, strlen($bv1), SQLT_AFC) && oci_bind_by_name($s, ':bv2', $bv2, strlen($bv1), SQLT_AFC);
75: if ($r)
76: do_e($s);
77: var_dump($bv1, $bv2);
78:
79:
80: echo "Test 1.6 In Length: strlen. In Type: AFC. Out Length: strlen(input)-1. Out Type: AFC\n";
81:
82: $bv1 = 'abc';
83: $r = oci_bind_by_name($s, ':bv1', $bv1, strlen($bv1), SQLT_AFC) && oci_bind_by_name($s, ':bv2', $bv2, strlen($bv1)-1, SQLT_AFC);
84: if ($r)
85: do_e($s);
86: var_dump($bv1, $bv2);
87:
88:
89: echo "Test 1.7 In Length: strlen. In Type: AFC. Out Length: strlen(input)+1. Out Type: AFC\n";
90:
91: $bv1 = 'abc';
92: $r = oci_bind_by_name($s, ':bv1', $bv1, strlen($bv1), SQLT_AFC) && oci_bind_by_name($s, ':bv2', $bv2, strlen($bv1)+1, SQLT_AFC);
93: if ($r)
94: do_e($s);
95: var_dump($bv1, $bv2);
96:
97:
98: echo "\n\nTests with ''\n\n";
99:
100: echo "Test 2.1 In Length: -1. In Type: AFC. Out Length: 10. Out Type: AFC\n";
101:
102: $bv1 = '';
103: $r = oci_bind_by_name($s, ':bv1', $bv1, -1, SQLT_AFC) && oci_bind_by_name($s, ':bv2', $bv2, 10, SQLT_AFC);
104: if ($r)
105: do_e($s);
106: var_dump($bv1, $bv2);
107:
108:
109: echo "Test 2.2 In Length: default. In Type: default. Out Length: 10. Out Type: default\n";
110:
111: $r = oci_bind_by_name($s, ':bv1', $bv1) && oci_bind_by_name($s, ':bv2', $bv2, 10);
112: if ($r)
113: do_e($s);
114: var_dump($bv1, $bv2);
115:
116:
117:
118: echo "Test 2.3 In Length: -1. In Type: AFC. Out Length: 10. Out Type: default\n";
119:
120: $bv1 = '';
121: $r = oci_bind_by_name($s, ':bv1', $bv1, -1, SQLT_AFC) && oci_bind_by_name($s, ':bv2', $bv2, 10);
122: if ($r)
123: do_e($s);
124: var_dump($bv1, $bv2);
125:
126:
127:
128: echo "Test 2.4 In Length: -1. In Type: AFC. Out Length: 10. Out Type: AFC\n";
129:
130: $bv1 = '';
131: $r = oci_bind_by_name($s, ':bv1', $bv1, -1, SQLT_AFC) && oci_bind_by_name($s, ':bv2', $bv2, 10, SQLT_AFC);
132: if ($r)
133: do_e($s);
134: var_dump($bv1, $bv2);
135:
136:
137:
138: echo "Test 2.5 In Length: -1. In Type: AFC. Out Length: 0. Out Type: AFC\n";
139:
140: $bv1 = '';
141: $r = oci_bind_by_name($s, ':bv1', $bv1, -1, SQLT_AFC) && oci_bind_by_name($s, ':bv2', $bv2, 0, SQLT_AFC);
142: if ($r)
143: do_e($s);
144: var_dump($bv1, $bv2);
145:
146:
147:
148: echo "Test 2.6 In Length: 0. In Type: AFC. Out Length: 0. Out Type: AFC\n";
149:
150: $bv1 = '';
151: $r = oci_bind_by_name($s, ':bv1', $bv1, 0, SQLT_AFC) && oci_bind_by_name($s, ':bv2', $bv2, 0, SQLT_AFC);
152: if ($r)
153: do_e($s);
154: var_dump($bv1, $bv2);
155:
156:
157:
158: echo "Test 2.7 In Length: 1. In Type: AFC. Out Length: 1. Out Type: AFC\n";
159:
160: $bv1 = '';
161: $r = oci_bind_by_name($s, ':bv1', $bv1, 1, SQLT_AFC) && oci_bind_by_name($s, ':bv2', $bv2, 1, SQLT_AFC);
162: if ($r)
163: do_e($s);
164: var_dump($bv1, $bv2);
165:
166:
167:
168: echo "\n\nTests with NULL\n";
169:
170: echo "Test 3.1 In Length: -1. In Type: AFC. Out Length: 10. Out Type: AFC\n";
171:
172: $bv1 = null;
173: $r = oci_bind_by_name($s, ':bv1', $bv1, -1, SQLT_AFC) && oci_bind_by_name($s, ':bv2', $bv2, 10, SQLT_AFC);
174: if ($r)
175: do_e($s);
176: var_dump($bv1, $bv2);
177:
178:
179: echo "Test 3.2 In Length: default. In Type: default. Out Length: 10. Out Type: default\n";
180:
181: $bv1 = null;
182: $r = oci_bind_by_name($s, ':bv1', $bv1) && oci_bind_by_name($s, ':bv2', $bv2, 10);
183: if ($r)
184: do_e($s);
185: var_dump($bv1, $bv2);
186:
187:
188:
189: echo "Test 3.3 In Length: -1. In Type: AFC. Out Length: 10. Out Type: default\n";
190:
191: $bv1 = null;
192: $r = oci_bind_by_name($s, ':bv1', $bv1, -1, SQLT_AFC) && oci_bind_by_name($s, ':bv2', $bv2, 10);
193: if ($r)
194: do_e($s);
195: var_dump($bv1, $bv2);
196:
197:
198:
199: echo "Test 3.4 In Length: -1. In Type: AFC. Out Length: 10. Out Type: AFC\n";
200:
201: $bv1 = null;
202: $r = oci_bind_by_name($s, ':bv1', $bv1, -1, SQLT_AFC) && oci_bind_by_name($s, ':bv2', $bv2, 10, SQLT_AFC);
203: if ($r)
204: do_e($s);
205: var_dump($bv1, $bv2);
206:
207:
208: echo "Test 3.5 In Length: -1. In Type: AFC. Out Length: 0. Out Type: AFC\n";
209:
210: $bv1 = null;
211: $r = oci_bind_by_name($s, ':bv1', $bv1, -1, SQLT_AFC) && oci_bind_by_name($s, ':bv2', $bv2, 0, SQLT_AFC);
212: if ($r)
213: do_e($s);
214: var_dump($bv1, $bv2);
215:
216:
217:
218: echo "Test 3.6 In Length: -1. In Type: AFC. Out Length: 1. Out Type: AFC\n";
219:
220: $bv1 = null;
221: $r = oci_bind_by_name($s, ':bv1', $bv1, -1, SQLT_AFC) && oci_bind_by_name($s, ':bv2', $bv2, 1, SQLT_AFC);
222: if ($r)
223: do_e($s);
224: var_dump($bv1, $bv2);
225:
226:
227: function do_e($s)
228: {
229: echo " Executing:\n";
230:
231: $r = @oci_execute($s);
232: if (!$r) {
233: $m = oci_error($s);
234: echo " Oci_execute error ORA-".$m['code']."\n";
235: return;
236: }
237: }
238:
239: // Cleanup
240:
241: $stmtarray = array(
242: "drop function bind_char_3_fn"
243: );
244:
245: oci8_test_sql_execute($c, $stmtarray);
246:
247: echo "Done\n";
248:
249: ?>
250: --EXPECTF--
251: Test 1.1 In Length: default. In Type: default. Out Length: default. Out Type: default
252: Executing:
253: string(3) "abc"
254: string(3) "abc"
255: Test 1.2 In Length: default. In Type: default. Out Length: 10. Out Type: default
256: Executing:
257: string(3) "abc"
258: string(3) "abc"
259: Test 1.3 In Length: -1. In Type: AFC. Out Length: 10. Out Type: default
260: Executing:
261: string(3) "abc"
262: string(3) "abc"
263: Test 1.4 In Length: -1. In Type: AFC. Out Length: 10. Out Type: AFC
264: Executing:
265: string(3) "abc"
266: string(30) "abc "
267: Test 1.5 In Length: strlen. In Type: AFC. Out Length: strlen(input). Out Type: AFC
268: Executing:
269: string(3) "abc"
270: string(9) "abc "
271: Test 1.6 In Length: strlen. In Type: AFC. Out Length: strlen(input)-1. Out Type: AFC
272: Executing:
273: string(3) "abc"
274: string(6) "abc "
275: Test 1.7 In Length: strlen. In Type: AFC. Out Length: strlen(input)+1. Out Type: AFC
276: Executing:
277: string(3) "abc"
278: string(12) "abc "
279:
280:
281: Tests with ''
282:
283: Test 2.1 In Length: -1. In Type: AFC. Out Length: 10. Out Type: AFC
284: Executing:
285: string(0) ""
286: NULL
287: Test 2.2 In Length: default. In Type: default. Out Length: 10. Out Type: default
288: Executing:
289: string(0) ""
290: NULL
291: Test 2.3 In Length: -1. In Type: AFC. Out Length: 10. Out Type: default
292: Executing:
293: string(0) ""
294: NULL
295: Test 2.4 In Length: -1. In Type: AFC. Out Length: 10. Out Type: AFC
296: Executing:
297: string(0) ""
298: NULL
299: Test 2.5 In Length: -1. In Type: AFC. Out Length: 0. Out Type: AFC
300: Executing:
301: string(0) ""
302: NULL
303: Test 2.6 In Length: 0. In Type: AFC. Out Length: 0. Out Type: AFC
304: Executing:
305: string(0) ""
306: NULL
307: Test 2.7 In Length: 1. In Type: AFC. Out Length: 1. Out Type: AFC
308: Executing:
309: string(0) ""
310: NULL
311:
312:
313: Tests with NULL
314: Test 3.1 In Length: -1. In Type: AFC. Out Length: 10. Out Type: AFC
315: Executing:
316: NULL
317: NULL
318: Test 3.2 In Length: default. In Type: default. Out Length: 10. Out Type: default
319: Executing:
320: NULL
321: NULL
322: Test 3.3 In Length: -1. In Type: AFC. Out Length: 10. Out Type: default
323: Executing:
324: NULL
325: NULL
326: Test 3.4 In Length: -1. In Type: AFC. Out Length: 10. Out Type: AFC
327: Executing:
328: NULL
329: NULL
330: Test 3.5 In Length: -1. In Type: AFC. Out Length: 0. Out Type: AFC
331: Executing:
332: NULL
333: NULL
334: Test 3.6 In Length: -1. In Type: AFC. Out Length: 1. Out Type: AFC
335: Executing:
336: NULL
337: NULL
338: Done
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>