Annotation of embedaddon/php/ext/oci8/tests/bind_char_2_11gR1.phpt, revision 1.1.1.2
1.1 misho 1: --TEST--
2: SELECT oci_bind_by_name with SQLT_AFC aka CHAR and dates
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.
1.1.1.2 ! misho 8: if (preg_match('/Release 11\.1\./', oci_server_version($c), $matches) !== 1) {
1.1 misho 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: require(dirname(__FILE__).'/connect.inc');
20:
21: // Initialization
22:
23: $stmtarray = array(
24: "alter session set nls_date_format='YYYY-MM-DD'",
25: "drop table bind_char_tab",
26: "create table bind_char_tab (id number, c1 date)",
27: "insert into bind_char_tab values (1, '2008-04-20')",
28: );
29:
30: oci8_test_sql_execute($c, $stmtarray);
31:
32: // Run Test
33:
34: $bv1 = '2008-04-20';
35:
36: echo "Test 1.1: Type: default. Length: default\n";
37: $s = oci_parse($c, "select * from bind_char_tab where c1 = :bv");
38: $r = oci_bind_by_name($s, ":bv", $bv1);
39: if ($r)
40: do_e_q($s);
41:
42: echo "Test 1.2: Type: AFC. Length: default\n";
43: $r = oci_bind_by_name($s, ":bv", $bv1, -1, SQLT_AFC);
44: if ($r)
45: do_e_q($s);
46:
47: echo "Test 1.3: Type: AFC: Length: 0\n";
48: $r = oci_bind_by_name($s, ":bv", $bv1, 0, SQLT_AFC);
49: if ($r)
50: do_e_q($s);
51:
52: echo "Test 1.4: Type: AFC: Length: strlen\n";
53: $r = oci_bind_by_name($s, ":bv", $bv1, strlen($bv1), SQLT_AFC);
54: if ($r)
55: do_e_q($s);
56:
57: echo "Test 1.5: Type: AFC. Length: strlen-1\n";
58: $r = oci_bind_by_name($s, ":bv", $bv1, strlen($bv1)-1, SQLT_AFC);
59: if ($r)
60: do_e_q($s);
61:
62: echo "Test 1.6: 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:
68: function do_e_q($s)
69: {
70: echo " Querying:\n";
71:
72: $r = @oci_execute($s);
73: if (!$r) {
74: $m = oci_error($s);
75: echo " Oci_execute error ORA-".$m['code']." Exiting Query\n";
76: return;
77: }
78: while ($row = oci_fetch_array($s, OCI_ASSOC+OCI_RETURN_NULLS)) {
79: foreach ($row as $item) {
80: echo " :" . $item . ":\n";
81: }
82: }
83: }
84:
85: // Cleanup
86: $stmtarray = array(
87: "drop table bind_char_tab"
88: );
89:
90: oci8_test_sql_execute($c, $stmtarray);
91:
92: echo "Done\n";
93:
94: ?>
95: --EXPECT--
96: Test 1.1: Type: default. Length: default
97: Querying:
98: :1:
99: :2008-04-20:
100: Test 1.2: Type: AFC. Length: default
101: Querying:
102: :1:
103: :2008-04-20:
104: Test 1.3: Type: AFC: Length: 0
105: Querying:
106: Oci_execute error ORA-1460 Exiting Query
107: Test 1.4: Type: AFC: Length: strlen
108: Querying:
109: :1:
110: :2008-04-20:
111: Test 1.5: Type: AFC. Length: strlen-1
112: Querying:
113: Oci_execute error ORA-1460 Exiting Query
114: Test 1.6: Type: AFC. Length: strlen+1
115: Querying:
116: :1:
117: :2008-04-20:
118: Done
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>