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