Annotation of embedaddon/php/ext/oci8/tests/bind_misccoltypes.phpt, revision 1.1.1.1
1.1 misho 1: --TEST--
2: Bind miscellaneous column types using default types
3: --SKIPIF--
4: <?php
5: $target_dbs = array('oracledb' => true, 'timesten' => false); // test runs on these DBs
6: require(dirname(__FILE__).'/skipif.inc');
7: if (preg_match('/^1[012]\./', oci_client_version()) != 1) {
8: die("skip test expected to work only with Oracle 10g or greater version of client");
9: }
10: ?>
11: --FILE--
12: <?php
13:
14: require(dirname(__FILE__).'/connect.inc');
15:
16: // Initialization
17:
18: $stmtarray = array(
19:
20: "alter session set nls_date_format = 'DD-MON-YY'",
21:
22: "drop table bind_misccoltypes_tab",
23:
24: "create table bind_misccoltypes_tab (
25: id number,
26: char_t char(1),
27: char_t10 char(10),
28: varchar2_t10 varchar2(10),
29: number_t number,
30: number_t92 number(9,2),
31: number_t6 number(6),
32: date_t date,
33: timestamp_t timestamp,
34: float_t float,
35: binary_float_t binary_float,
36: binary_double_t binary_double,
37: decimal_t decimal,
38: integer_t integer,
39: nchar_t nchar(10),
40: nvarchar2_t10 nvarchar2(10),
41: varchar_t10 varchar(10) )",
42: );
43:
44: oci8_test_sql_execute($c, $stmtarray);
45:
46: function check_col($c, $colname, $id)
47: {
48: $s = oci_parse($c, "select $colname from bind_misccoltypes_tab where id = :id");
49: oci_bind_by_name($s, ":id", $id);
50: oci_execute($s);
51: oci_fetch_all($s, $r);
52: var_dump($r);
53: }
54:
55: // Tests
56:
57: echo "\nTEST86 insert all ORATYPE values\n";
58:
59: $insert_sql = "INSERT INTO bind_misccoltypes_tab ( id, "
60: . " char_t, "
61: . " char_t10, "
62: . " varchar2_t10, "
63: . " number_t, "
64: . " number_t92, "
65: . " number_t6, "
66: . " date_t, "
67: . " timestamp_t, "
68: . " float_t, "
69: . " binary_float_t, "
70: . " binary_double_t, "
71: . " decimal_t, "
72: . " integer_t, "
73: . " nchar_t, "
74: . " nvarchar2_t10, "
75: . " varchar_t10) "
76: . " VALUES (:n1, "
77: . " :c1, "
78: . " :c2, "
79: . " :c3, "
80: . " :n2, "
81: . " :n3, "
82: . " :n4, "
83: . " to_date(:d1, 'YYYY-MM-DD HH24:MI:SS'), "
84: . " to_timestamp(:d1, 'YYYY-MM-DD HH24:MI:SS'), "
85: . " :n5, "
86: . " :n5, "
87: . " :n5, "
88: . " :n1, "
89: . " :n1, "
90: . " :c4, "
91: . " :c5, "
92: . " :c6) ";
93:
94:
95: $n1 = "86";
96: $c1 = "C";
97: $c2 = "char10";
98: $c3 = "varchar210";
99: $n2 = "-123.456";
100: $n3 = "789.346";
101: $n4 = "123456.023";
102: $n5 = "12345678901234567890123456789012345678.723";
103: $d1 = "2010-03-29 13:09:15";
104: $c4 = "nchar10";
105: $c5 = "nvarchar2x";
106: $c6 = "varchar";
107:
108: $s = oci_parse($c, $insert_sql);
109: oci_bind_by_name($s, ":n1", $n1);
110: oci_bind_by_name($s, ":c1", $c1);
111: oci_bind_by_name($s, ":c2", $c2);
112: oci_bind_by_name($s, ":c3", $c3);
113: oci_bind_by_name($s, ":n2", $n2);
114: oci_bind_by_name($s, ":n3", $n3);
115: oci_bind_by_name($s, ":n4", $n4);
116: oci_bind_by_name($s, ":d1", $d1);
117: oci_bind_by_name($s, ":n5", $n5);
118: oci_bind_by_name($s, ":c4", $c4);
119: oci_bind_by_name($s, ":c5", $c5);
120: oci_bind_by_name($s, ":c6", $c6);
121:
122: oci_execute($s);
123:
124: echo "\nTEST87 SELECT all values using DEFINEs\n";
125: $select_sql = "select "
126: . "id, "
127: . "char_t, "
128: . "char_t10, "
129: . "varchar2_t10, "
130: . "number_t, "
131: . "number_t92, "
132: . "number_t6, "
133: . "date_t, "
134: . "timestamp_t, "
135: . "float_t, "
136: . "binary_float_t, "
137: . "binary_double_t, "
138: . "decimal_t, "
139: . "integer_t, "
140: . "nchar_t, "
141: . "nvarchar2_t10, "
142: . "varchar_t10 "
143: . "from bind_misccoltypes_tab where id = 86";
144:
145: $s = oci_parse($c, $select_sql);
146:
147: oci_define_by_name($s, "ID", $ID);
148: oci_define_by_name($s, "CHAR_T", $CHAR_T);
149: oci_define_by_name($s, "CHAR_T10", $CHAR_T10);
150: oci_define_by_name($s, "VARCHAR2_T10", $VARCHAR2_T10);
151: oci_define_by_name($s, "NUMBER_T", $NUMBER_T);
152: oci_define_by_name($s, "NUMBER_T92", $NUMBER_T92);
153: oci_define_by_name($s, "NUMBER_T6", $NUMBER_T6);
154: oci_define_by_name($s, "DATE_T", $DATE_T);
155: oci_define_by_name($s, "TIMESTAMP_T", $TIMESTAMP_T);
156: oci_define_by_name($s, "FLOAT_T", $FLOAT_T);
157: oci_define_by_name($s, "BINARY_FLOAT_T", $BINARY_FLOAT_T);
158: oci_define_by_name($s, "BINARY_DOUBLE_T", $BINARY_DOUBLE_T);
159: oci_define_by_name($s, "DECIMAL_T", $DECIMAL_T);
160: oci_define_by_name($s, "INTEGER_T", $INTEGER_T);
161: oci_define_by_name($s, "NCHAR_T", $NCHAR_T);
162: oci_define_by_name($s, "NVARCHAR2_T10", $NVARCHAR2_T10);
163: oci_define_by_name($s, "VARCHAR_T10", $VARCHAR_T10);
164:
165: oci_execute($s);
166:
167: while (oci_fetch($s)) {
168: echo "ID is " . "$ID\n";
169: echo "CHAR_T is " . "$CHAR_T\n";
170: echo "CHAR_T10 is " . "$CHAR_T10\n";
171: echo "VARCHAR2_T10 is " . "$VARCHAR2_T10\n";
172: echo "NUMBER_T is " . "$NUMBER_T\n";
173: echo "NUMBER_T92 is " . "$NUMBER_T92\n";
174: echo "NUMBER_T6 is " . "$NUMBER_T6\n";
175: echo "DATE_T is " . "$DATE_T\n";
176: echo "TIMESTAMP_T is " . "$TIMESTAMP_T\n";
177: echo "FLOAT_T is " . "$FLOAT_T\n";
178: echo "BINARY_FLOAT_T is " . "$BINARY_FLOAT_T\n";
179: echo "BINARY_DOUBLE_T is " . "$BINARY_DOUBLE_T\n";
180: echo "DECIMAL_T is " . "$DECIMAL_T\n";
181: echo "INTEGER_T is " . "$INTEGER_T\n";
182: echo "NCHAR_T is " . "$NCHAR_T\n";
183: echo "NVARCHAR2_T10 is " . "$NVARCHAR2_T10\n";
184: echo "VARCHAR_T10 is " . "$VARCHAR_T10\n";
185: }
186:
187: echo "\nTEST52 insert numbers\n";
188:
189: $s = oci_parse($c, "INSERT INTO bind_misccoltypes_tab (id, number_t92) VALUES (52, :n1)");
190: $n1 = 3;
191: oci_bind_by_name($s, ":n1", $n1);
192: oci_execute($s);
193:
194: check_col($c, 'number_t92', 52);
195:
196:
197: echo "\nTEST53 insert numbers \n";
198:
199: $s = oci_parse($c, "INSERT INTO bind_misccoltypes_tab (id, number_t92) VALUES (53, :n1)");
200: $n1 = 8.67;
201: oci_bind_by_name($s, ":n1", $n1);
202: oci_execute($s);
203:
204: check_col($c, 'number_t92', 53);
205:
206:
207: echo "\nTEST54 insert numbers \n";
208:
209: $s = oci_parse($c, "INSERT INTO bind_misccoltypes_tab (id, number_t) VALUES (54, :n1)");
210: $n1 = 4.67;
211: oci_bind_by_name($s, ":n1", $n1);
212: oci_execute($s);
213:
214: check_col($c, 'number_t', 54);
215:
216: echo "\nTEST55 insert numbers \n";
217:
218: $s = oci_parse($c, "INSERT INTO bind_misccoltypes_tab (id, number_t) VALUES (55, :n1)");
219: $n1 = "7.67";
220: oci_bind_by_name($s, ":n1", $n1);
221: oci_execute($s);
222:
223: check_col($c, 'number_t', 55);
224:
225: echo "\nTEST56 insert numbers \n";
226:
227: $n1 = -5.67;
228:
229: $s = oci_parse($c, "INSERT INTO bind_misccoltypes_tab (id, number_t) VALUES (56, :n1)");
230: oci_bind_by_name($s, ":n1", $n1);
231: oci_execute($s);
232:
233: check_col($c, 'number_t', 56);
234:
235: echo "\nTEST58 insert a VARCHAR2\n";
236:
237: $s = oci_parse($c, "INSERT INTO bind_misccoltypes_tab (id, varchar2_t10) VALUES (58, :c2)");
238: $c2 = "Hood";
239: oci_bind_by_name($s, ":c2", $c2);
240: oci_execute($s);
241:
242: check_col($c, 'varchar2_t10', 58);
243:
244: echo "\nTEST59 insert a VARCHAR2\n";
245:
246: $s = oci_parse($c, "INSERT INTO bind_misccoltypes_tab (id, char_t10) VALUES (59, :c2)");
247: $c2 = "Hood";
248: oci_bind_by_name($s, ":c2", $c2);
249: oci_execute($s);
250:
251: check_col($c, 'char_t10', 59);
252:
253: echo "\nTEST60 insert a date\n";
254:
255: $s = oci_parse($c, "INSERT INTO bind_misccoltypes_tab (id, date_t) VALUES (60, to_date(:c2, 'YYYY-MM-DD'))");
256: $c2 = '2010-04-09';
257: oci_bind_by_name($s, ":c2", $c2);
258: oci_execute($s);
259:
260: check_col($c, 'date_t', 60);
261:
262:
263: // Clean up
264:
265: $stmtarray = array(
266: "drop table bind_misccoltypes_tab"
267: );
268:
269: oci8_test_sql_execute($c, $stmtarray);
270:
271: oci_close($c);
272:
273: ?>
274: ===DONE===
275: <?php exit(0); ?>
276: --EXPECTF--
277: TEST86 insert all ORATYPE values
278:
279: TEST87 SELECT all values using DEFINEs
280: ID is 86
281: CHAR_T is C
282: CHAR_T10 is char10
283: VARCHAR2_T10 is varchar210
284: NUMBER_T is -123.456
285: NUMBER_T92 is 789.35
286: NUMBER_T6 is 123456
287: DATE_T is 29-MAR-10
288: TIMESTAMP_T is 29-MAR-10 01.09.15.000000 PM
289: FLOAT_T is 12345678901234567890123456789012345679
290: BINARY_FLOAT_T is 1.23456784E+037
291: BINARY_DOUBLE_T is 1.2345678901234568E+037
292: DECIMAL_T is 86
293: INTEGER_T is 86
294: NCHAR_T is nchar10
295: NVARCHAR2_T10 is nvarchar2x
296: VARCHAR_T10 is varchar
297:
298: TEST52 insert numbers
299: array(1) {
300: ["NUMBER_T92"]=>
301: array(1) {
302: [0]=>
303: string(1) "3"
304: }
305: }
306:
307: TEST53 insert numbers
308: array(1) {
309: ["NUMBER_T92"]=>
310: array(1) {
311: [0]=>
312: string(4) "8.67"
313: }
314: }
315:
316: TEST54 insert numbers
317: array(1) {
318: ["NUMBER_T"]=>
319: array(1) {
320: [0]=>
321: string(4) "4.67"
322: }
323: }
324:
325: TEST55 insert numbers
326: array(1) {
327: ["NUMBER_T"]=>
328: array(1) {
329: [0]=>
330: string(4) "7.67"
331: }
332: }
333:
334: TEST56 insert numbers
335: array(1) {
336: ["NUMBER_T"]=>
337: array(1) {
338: [0]=>
339: string(5) "-5.67"
340: }
341: }
342:
343: TEST58 insert a VARCHAR2
344: array(1) {
345: ["VARCHAR2_T10"]=>
346: array(1) {
347: [0]=>
348: string(4) "Hood"
349: }
350: }
351:
352: TEST59 insert a VARCHAR2
353: array(1) {
354: ["CHAR_T10"]=>
355: array(1) {
356: [0]=>
357: string(10) "Hood "
358: }
359: }
360:
361: TEST60 insert a date
362: array(1) {
363: ["DATE_T"]=>
364: array(1) {
365: [0]=>
366: string(9) "09-APR-10"
367: }
368: }
369: ===DONE===
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>