Annotation of embedaddon/php/ext/oci8/tests/bug42173.phpt, revision 1.1.1.1
1.1 misho 1: --TEST--
2: Bug #42173 (TIMESTAMP and INTERVAL query and field functions)
3: --SKIPIF--
4: <?php
5: $target_dbs = array('oracledb' => true, 'timesten' => false); // test runs on these DBs
6: require(dirname(__FILE__).'/skipif.inc');
7: ?>
8: --FILE--
9: <?php
10:
11: require(dirname(__FILE__).'/connect.inc');
12:
13: $stmts = array(
14:
15: "drop table ts_test",
16:
17: "create table ts_test (
18: c1 TIMESTAMP,
19: c2 TIMESTAMP (5),
20: c3 TIMESTAMP WITH TIME ZONE,
21: c4 TIMESTAMP (2) WITH TIME ZONE,
22: c5 TIMESTAMP WITH LOCAL TIME ZONE,
23: c6 INTERVAL YEAR TO MONTH,
24: c7 INTERVAL YEAR(2) TO MONTH,
25: c8 INTERVAL DAY TO SECOND,
26: c9 INTERVAL DAY(2) TO SECOND(3)
27: )",
28:
29: "insert into ts_test values (
30: timestamp'1999-01-03 10:00:00.123',
31: timestamp'1999-01-04 10:00:00.123456',
32: timestamp'1999-01-05 10:00:00.123456+1:0',
33: timestamp'1999-01-06 10:00:00.123456-1:0',
34: timestamp'1999-01-06 10:00:00.123456-1:0',
35: interval'1-2' year to month,
36: interval'10-4' year to month,
37: interval'1 2:20:20.123' day to second,
38: interval'1 2:20:20.12345' day to second)");
39:
40: foreach ($stmts as $sql) {
41: $s = oci_parse($c, $sql);
42: $r = @oci_execute($s);
43: }
44:
45: $s = oci_parse($c, "select * from ts_test");
46: $r = oci_execute($s);
47: $row = oci_fetch_array($s, OCI_ASSOC);
48: var_dump($row);
49:
50: foreach ($row as $name => $field) {
51: echo "\nColumn $name\n";
52: var_dump(oci_field_is_null($s, $name));
53: var_dump(oci_field_name($s, $name));
54: var_dump(oci_field_type($s, $name));
55: var_dump(oci_field_type_raw($s, $name));
56: var_dump(oci_field_scale($s, $name));
57: var_dump(oci_field_precision($s, $name));
58: var_dump(oci_field_size($s, $name));
59: }
60:
61: // Cleanup
62:
63: $s = oci_parse($c, "drop table ts_test");
64: $r = @oci_execute($s);
65:
66: echo "Done\n";
67:
68: ?>
69: --EXPECTF--
70: array(9) {
71: ["C1"]=>
72: string(28) "03-JAN-99 10.00.00.123000 AM"
73: ["C2"]=>
74: string(27) "04-JAN-99 10.00.00.12346 AM"
75: ["C3"]=>
76: string(35) "05-JAN-99 10.00.00.123456 AM +01:00"
77: ["C4"]=>
78: string(31) "06-JAN-99 10.00.00.12 AM -01:00"
79: ["C5"]=>
80: string(28) "%s"
81: ["C6"]=>
82: string(6) "+01-02"
83: ["C7"]=>
84: string(6) "+10-04"
85: ["C8"]=>
86: string(19) "+01 02:20:20.123000"
87: ["C9"]=>
88: string(16) "+01 02:20:20.123"
89: }
90:
91: Column C1
92: bool(false)
93: string(2) "C1"
94: string(9) "TIMESTAMP"
95: int(187)
96: int(6)
97: int(0)
98: int(11)
99:
100: Column C2
101: bool(false)
102: string(2) "C2"
103: string(9) "TIMESTAMP"
104: int(187)
105: int(5)
106: int(0)
107: int(11)
108:
109: Column C3
110: bool(false)
111: string(2) "C3"
112: string(23) "TIMESTAMP WITH TIMEZONE"
113: int(188)
114: int(6)
115: int(0)
116: int(13)
117:
118: Column C4
119: bool(false)
120: string(2) "C4"
121: string(23) "TIMESTAMP WITH TIMEZONE"
122: int(188)
123: int(2)
124: int(0)
125: int(13)
126:
127: Column C5
128: bool(false)
129: string(2) "C5"
130: string(29) "TIMESTAMP WITH LOCAL TIMEZONE"
131: int(232)
132: int(6)
133: int(0)
134: int(11)
135:
136: Column C6
137: bool(false)
138: string(2) "C6"
139: string(22) "INTERVAL YEAR TO MONTH"
140: int(189)
141: int(0)
142: int(2)
143: int(5)
144:
145: Column C7
146: bool(false)
147: string(2) "C7"
148: string(22) "INTERVAL YEAR TO MONTH"
149: int(189)
150: int(0)
151: int(2)
152: int(5)
153:
154: Column C8
155: bool(false)
156: string(2) "C8"
157: string(22) "INTERVAL DAY TO SECOND"
158: int(190)
159: int(6)
160: int(2)
161: int(11)
162:
163: Column C9
164: bool(false)
165: string(2) "C9"
166: string(22) "INTERVAL DAY TO SECOND"
167: int(190)
168: int(3)
169: int(2)
170: int(11)
171: Done
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>