5 if (!extension_loaded('oci8')) die("skip no oci8 extension");
6 if (preg_match('/^1[012]\./', oci_client_version()) != 1) {
7 die("skip test expected to work only with Oracle 10g or greater version of client");
13 require(dirname(__FILE__).'/connect.inc');
18 "drop table bind_sqltnum_tab",
20 "create table bind_sqltnum_tab (
22 varchar2_t10 varchar2(10),
24 number_t92 number(9,2))"
27 oci8_test_sql_execute($c, $stmtarray);
29 function check_col($c, $colname, $id)
31 $s = oci_parse($c, "select $colname from bind_sqltnum_tab where id = :id");
32 oci_bind_by_name($s, ":id", $id);
34 oci_fetch_all($s, $r);
41 echo "Test 1 - baseline test\n";
43 $s = oci_parse($c, "INSERT INTO bind_sqltnum_tab (id, varchar2_t10) VALUES (100, :c2)");
45 $r = oci_bind_by_name($s, ":c2", $c2, -1);
50 $r = oci_execute($s, OCI_DEFAULT);
56 $s = oci_parse($c, "select id, varchar2_t10 from bind_sqltnum_tab");
58 oci_fetch_all($s, $data);
61 echo "Test 2 - SQLT_NUM to a VARCHAR2 column\n";
63 $s = oci_parse($c, "INSERT INTO bind_sqltnum_tab (id, varchar2_t10) VALUES (100, :c2)");
65 $r = oci_bind_by_name($s, ":c2", $c2, -1, SQLT_NUM);
68 var_dump($e['message']);
70 $r = oci_execute($s, OCI_DEFAULT);
73 var_dump($e['message']);
76 echo "\nTEST41 wrong bind type SQLT_NUM\n";
79 $s = oci_parse($c, "INSERT INTO bind_sqltnum_tab (id, varchar2_t10) VALUES (41, :c2)");
80 oci_bind_by_name($s, ":c2", $c2, -1, SQLT_NUM);
83 echo "\nTEST42 insert numbers SQLT_NUM\n";
85 $s = oci_parse($c, "INSERT INTO bind_sqltnum_tab (id, number_t) VALUES (42, :n1)");
87 oci_bind_by_name($s, ":n1", $n1, -1, SQLT_NUM);
90 check_col($c, 'number_t', 42);
92 echo "\nTEST43 insert numbers SQLT_NUM\n";
94 $s = oci_parse($c, "INSERT INTO bind_sqltnum_tab (id, number_t) VALUES (43, :n1)");
96 oci_bind_by_name($s, ":n1", $n1, -1, SQLT_NUM);
99 check_col($c, 'number_t', 43);
103 $s = oci_parse($c, "INSERT INTO bind_sqltnum_tab (id, number_t) VALUES (44, :n1)");
105 oci_bind_by_name($s, ":n1", $n1, -1, SQLT_NUM);
108 check_col($c, 'number_t', 44);
112 $s = oci_parse($c, "INSERT INTO bind_sqltnum_tab (id, number_t) VALUES (45, :n1)");
114 oci_bind_by_name($s, ":n1", $n1, -1, SQLT_NUM);
117 check_col($c, 'number_t', 45);
119 echo "\nTEST46 insert numbers\n";
121 $s = oci_parse($c, "INSERT INTO bind_sqltnum_tab (id, number_t) VALUES (46, :n1)");
123 oci_bind_by_name($s, ":n1", $n1, -1, SQLT_NUM);
126 check_col($c, 'number_t', 46);
130 $s = oci_parse($c, "INSERT INTO bind_sqltnum_tab (id, number_t) VALUES (47, :n1)");
132 oci_bind_by_name($s, ":n1", $n1, -1, SQLT_NUM);
135 check_col($c, 'number_t', 47);
139 $s = oci_parse($c, "INSERT INTO bind_sqltnum_tab (id, number_t92) VALUES (48, :n1)");
141 oci_bind_by_name($s, ":n1", $n1, -1, SQLT_NUM);
144 check_col($c, 'number_t92', 48);
148 $s = oci_parse($c, "INSERT INTO bind_sqltnum_tab (id, number_t92) VALUES (49, :n1)");
150 oci_bind_by_name($s, ":n1", $n1, -1, SQLT_NUM);
153 check_col($c, 'number_t92', 49);
157 $s = oci_parse($c, "INSERT INTO bind_sqltnum_tab (id, number_t92) VALUES (50, :n1)");
159 oci_bind_by_name($s, ":n1", $n1, -1, SQLT_NUM);
162 check_col($c, 'number_t92', 50);
167 "drop table bind_sqltnum_tab"
170 oci8_test_sql_execute($c, $stmtarray);
176 Test 1 - baseline test
189 Test 2 - SQLT_NUM to a VARCHAR2 column
191 Warning: oci_execute(): ORA-12899: %s (%s: 40, %s: 10) in %sbind_sqltnum.php on line %d
192 string(%d) "ORA-12899: %s"
194 TEST41 wrong bind type SQLT_NUM
196 Warning: oci_execute(): ORA-12899: %s "%s"."BIND_SQLTNUM_TAB"."VARCHAR2_T10" (%s: 40, %s: 10) in %sbind_sqltnum.php on line %d
198 TEST42 insert numbers SQLT_NUM
207 TEST43 insert numbers SQLT_NUM
221 string(127) "-000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
234 TEST46 insert numbers
272 Warning: oci_execute(): ORA-01438: %s in %sbind_sqltnum.php on line %d