summaryrefslogtreecommitdiff
path: root/ext/oci8/tests/bind_number.phpt
diff options
context:
space:
mode:
Diffstat (limited to 'ext/oci8/tests/bind_number.phpt')
-rw-r--r--ext/oci8/tests/bind_number.phpt220
1 files changed, 220 insertions, 0 deletions
diff --git a/ext/oci8/tests/bind_number.phpt b/ext/oci8/tests/bind_number.phpt
new file mode 100644
index 0000000..6412b5f
--- /dev/null
+++ b/ext/oci8/tests/bind_number.phpt
@@ -0,0 +1,220 @@
+--TEST--
+Bind with NUMBER column variants
+--SKIPIF--
+<?php
+if (!extension_loaded('oci8')) die("skip no oci8 extension");
+if (preg_match('/^1[012]\./', oci_client_version()) != 1) {
+ die("skip test expected to work only with Oracle 10g or greater version of client");
+}
+?>
+--INI--
+precision = 14
+--FILE--
+<?php
+
+require(dirname(__FILE__).'/connect.inc');
+
+// Initialization
+
+$stmtarray = array(
+ "drop table bind_number_tab",
+ "create table bind_number_tab (
+ id number,
+ number_t6 number(6),
+ float_t float,
+ binary_float_t binary_float,
+ binary_double_t binary_double,
+ decimal_t decimal,
+ integer_t integer)"
+);
+
+oci8_test_sql_execute($c, $stmtarray);
+
+function check_col($c, $colname, $id)
+{
+ $s = oci_parse($c, "select $colname from bind_number_tab where id = :id");
+ oci_bind_by_name($s, ":id", $id);
+ oci_execute($s);
+ oci_fetch_all($s, $r);
+ var_dump($r);
+}
+
+// Run Test
+
+echo "Test 1 - invalid number\n";
+
+$s = oci_parse($c, "INSERT INTO bind_number_tab (id, number_t6) VALUES (1, :n1)");
+$n1 = "Hello";
+oci_bind_by_name($s, ":n1", $n1);
+oci_execute($s);
+
+check_col($c, "number_t6", 1);
+
+echo "\nTEST66 insert a float\n";
+
+$s = oci_parse($c, "INSERT INTO bind_number_tab (id, float_t) VALUES (66, :f1)");
+$f1 = 123.456;
+oci_bind_by_name($s, ":f1", $f1);
+oci_execute($s);
+
+check_col($c, 'float_t', 66);
+
+echo "\nTEST67 insert a binary float\n";
+
+$s = oci_parse($c, "INSERT INTO bind_number_tab (id, binary_float_t) VALUES (67, :f1)");
+$f1 = 567.456;
+oci_bind_by_name($s, ":f1", $f1);
+oci_execute($s);
+
+check_col($c, 'binary_float_t', 67);
+
+echo "\nTEST69 insert a binary double\n";
+
+$s = oci_parse($c, "INSERT INTO bind_number_tab (id, binary_double_t) VALUES (69, :f1)");
+$f1 = 567.456;
+oci_bind_by_name($s, ":f1", $f1);
+oci_execute($s);
+
+check_col($c, 'binary_double_t', 69);
+
+echo "\nTEST71 insert a decimal\n";
+
+$s = oci_parse($c, "INSERT INTO bind_number_tab (id, decimal_t) VALUES (71, :f1)");
+$f1 = 123.789;
+oci_bind_by_name($s, ":f1", $f1);
+oci_execute($s);
+
+check_col($c, 'decimal_t', 71);
+
+echo "\nTEST72 insert a decimal\n";
+
+$s = oci_parse($c, "INSERT INTO bind_number_tab (id, decimal_t) VALUES (72, :f1)");
+$f1 = 123.789;
+oci_bind_by_name($s, ":f1", $f1, -1, SQLT_NUM);
+oci_execute($s);
+
+check_col($c, 'decimal_t', 72);
+
+echo "\nTEST73 insert a double\n";
+
+$s = oci_parse($c, "INSERT INTO bind_number_tab (id, binary_double_t) VALUES (73, :f1)");
+$f1 = 483.589;
+oci_bind_by_name($s, ":f1", $f1);
+oci_execute($s);
+
+check_col($c, 'binary_double_t', 73);
+
+echo "\nTEST75 insert a INTEGER\n";
+
+$s = oci_parse($c, "INSERT INTO bind_number_tab (id, integer_t) VALUES (75, :f1)");
+$f1 = 589;
+oci_bind_by_name($s, ":f1", $f1);
+oci_execute($s);
+
+check_col($c, 'integer_t', 75);
+
+echo "\nTEST76 insert a INTEGER\n";
+
+$s = oci_parse($c, "INSERT INTO bind_number_tab (id, integer_t) VALUES (76, :f1)");
+$f1 = 42;
+oci_bind_by_name($s, ":f1", $f1, -1, SQLT_INT);
+oci_execute($s);
+
+check_col($c, 'integer_t', 76);
+
+
+// Clean up
+
+$stmtarray = array(
+ "drop table bind_number_tab"
+);
+
+oci8_test_sql_execute($c, $stmtarray);
+
+?>
+===DONE===
+<?php exit(0); ?>
+--EXPECTF--
+Test 1 - invalid number
+
+Warning: oci_execute(): ORA-01722: %s in %sbind_number.php on line %d
+array(1) {
+ ["NUMBER_T6"]=>
+ array(0) {
+ }
+}
+
+TEST66 insert a float
+array(1) {
+ ["FLOAT_T"]=>
+ array(1) {
+ [0]=>
+ string(7) "123.456"
+ }
+}
+
+TEST67 insert a binary float
+array(1) {
+ ["BINARY_FLOAT_T"]=>
+ array(1) {
+ [0]=>
+ string(%r15|8%r) "%r(5.67455994E\+002|567.4560)%r"
+ }
+}
+
+TEST69 insert a binary double
+array(1) {
+ ["BINARY_DOUBLE_T"]=>
+ array(1) {
+ [0]=>
+ string(%r23|16%r) "%r(5.6745600000000002E\+002|567.456000000000)%r"
+ }
+}
+
+TEST71 insert a decimal
+array(1) {
+ ["DECIMAL_T"]=>
+ array(1) {
+ [0]=>
+ string(3) "124"
+ }
+}
+
+TEST72 insert a decimal
+array(1) {
+ ["DECIMAL_T"]=>
+ array(1) {
+ [0]=>
+ string(1) "0"
+ }
+}
+
+TEST73 insert a double
+array(1) {
+ ["BINARY_DOUBLE_T"]=>
+ array(1) {
+ [0]=>
+ string(%r12|16%r) "%r(4.83589E\+002|483.589000000000)%r"
+ }
+}
+
+TEST75 insert a INTEGER
+array(1) {
+ ["INTEGER_T"]=>
+ array(1) {
+ [0]=>
+ string(3) "589"
+ }
+}
+
+TEST76 insert a INTEGER
+array(1) {
+ ["INTEGER_T"]=>
+ array(1) {
+ [0]=>
+ string(2) "42"
+ }
+}
+===DONE===
+
+