123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277 |
- --TEST--
- Bind with SQLT_NUM
- --EXTENSIONS--
- oci8
- --SKIPIF--
- <?php
- preg_match('/^[[:digit:]]+/', oci_client_version(), $matches);
- if (!(isset($matches[0]) && $matches[0] >= 12)) {
- die("skip works only with Oracle 12c or greater version of Oracle client libraries");
- }
- ?>
- --FILE--
- <?php
- require(__DIR__.'/connect.inc');
- // Initialization
- $stmtarray = array(
- "drop table bind_sqltnum_tab",
- "create table bind_sqltnum_tab (
- id number,
- varchar2_t10 varchar2(10),
- number_t number,
- number_t92 number(9,2))"
- );
- oci8_test_sql_execute($c, $stmtarray);
- function check_col($c, $colname, $id)
- {
- $s = oci_parse($c, "select dump($colname) from bind_sqltnum_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 - baseline test\n";
- $s = oci_parse($c, "INSERT INTO bind_sqltnum_tab (id, varchar2_t10) VALUES (100, :c2)");
- $c2 = "Hood";
- $r = oci_bind_by_name($s, ":c2", $c2, -1);
- if (!$r) {
- $e = oci_error($s);
- var_dump($e);
- }
- $r = oci_execute($s, OCI_DEFAULT);
- if (!$r) {
- $e = oci_error($s);
- var_dump($e);
- }
- $s = oci_parse($c, "select id, varchar2_t10 from bind_sqltnum_tab");
- oci_execute($s);
- oci_fetch_all($s, $data);
- var_dump($data);
- echo "Test 2 - SQLT_NUM to a VARCHAR2 column\n";
- $s = oci_parse($c, "INSERT INTO bind_sqltnum_tab (id, varchar2_t10) VALUES (100, :c2)");
- $c2 = "Hood";
- $r = oci_bind_by_name($s, ":c2", $c2, -1, SQLT_NUM);
- if (!$r) {
- $e = oci_error($s);
- var_dump($e['message']);
- }
- $r = oci_execute($s, OCI_DEFAULT);
- if (!$r) {
- $e = oci_error($s);
- var_dump($e['message']);
- }
- echo "\nTEST41 wrong bind type SQLT_NUM\n";
- $c2 = "Hood41";
- $s = oci_parse($c, "INSERT INTO bind_sqltnum_tab (id, varchar2_t10) VALUES (41, :c2)");
- oci_bind_by_name($s, ":c2", $c2, -1, SQLT_NUM);
- oci_execute($s);
- echo "\nTEST42 insert numbers SQLT_NUM\n";
- $s = oci_parse($c, "INSERT INTO bind_sqltnum_tab (id, number_t) VALUES (42, :n1)");
- $n1 = 42;
- oci_bind_by_name($s, ":n1", $n1, -1, SQLT_NUM);
- oci_execute($s);
- check_col($c, 'number_t', 42);
- echo "\nTEST43 insert numbers SQLT_NUM\n";
- $s = oci_parse($c, "INSERT INTO bind_sqltnum_tab (id, number_t) VALUES (43, :n1)");
- $n1 = 42.69;
- oci_bind_by_name($s, ":n1", $n1, -1, SQLT_NUM);
- oci_execute($s);
- check_col($c, 'number_t', 43);
- echo "\nTEST44\n";
- $s = oci_parse($c, "INSERT INTO bind_sqltnum_tab (id, number_t) VALUES (44, :n1)");
- $n1 = 0;
- oci_bind_by_name($s, ":n1", $n1, -1, SQLT_NUM);
- oci_execute($s);
- check_col($c, 'number_t', 44);
- echo "\nTEST45\n";
- $s = oci_parse($c, "INSERT INTO bind_sqltnum_tab (id, number_t) VALUES (45, :n1)");
- $n1 = -23;
- oci_bind_by_name($s, ":n1", $n1, -1, SQLT_NUM);
- oci_execute($s);
- check_col($c, 'number_t', 45);
- echo "\nTEST46 insert numbers\n";
- $s = oci_parse($c, "INSERT INTO bind_sqltnum_tab (id, number_t) VALUES (46, :n1)");
- $n1 = "-23";
- oci_bind_by_name($s, ":n1", $n1, -1, SQLT_NUM);
- oci_execute($s);
- check_col($c, 'number_t', 46);
- echo "\nTEST47\n";
- $s = oci_parse($c, "INSERT INTO bind_sqltnum_tab (id, number_t) VALUES (47, :n1)");
- $n1 = "23";
- oci_bind_by_name($s, ":n1", $n1, -1, SQLT_NUM);
- oci_execute($s);
- check_col($c, 'number_t', 47);
- echo "\nTEST48\n";
- $s = oci_parse($c, "INSERT INTO bind_sqltnum_tab (id, number_t92) VALUES (48, :n1)");
- $n1 = 123.56;
- oci_bind_by_name($s, ":n1", $n1, -1, SQLT_NUM);
- oci_execute($s);
- check_col($c, 'number_t92', 48);
- echo "\nTEST49\n";
- $s = oci_parse($c, "INSERT INTO bind_sqltnum_tab (id, number_t92) VALUES (49, :n1)");
- $n1 = "123.56";
- oci_bind_by_name($s, ":n1", $n1, -1, SQLT_NUM);
- oci_execute($s);
- check_col($c, 'number_t92', 49);
- echo "\nTEST50\n";
- $s = oci_parse($c, "INSERT INTO bind_sqltnum_tab (id, number_t92) VALUES (50, :n1)");
- $n1 = "";
- oci_bind_by_name($s, ":n1", $n1, -1, SQLT_NUM);
- oci_execute($s);
- check_col($c, 'number_t92', 50);
- // Clean up
- $stmtarray = array(
- "drop table bind_sqltnum_tab"
- );
- oci8_test_sql_execute($c, $stmtarray);
- ?>
- --EXPECTF--
- Test 1 - baseline test
- array(2) {
- ["ID"]=>
- array(1) {
- [0]=>
- string(3) "100"
- }
- ["VARCHAR2_T10"]=>
- array(1) {
- [0]=>
- string(4) "Hood"
- }
- }
- Test 2 - SQLT_NUM to a VARCHAR2 column
- Warning: oci_execute(): ORA-12899: %s (%s: 40, %s: 10) in %sbind_sqltnum.php on line %d
- string(%d) "ORA-12899: %s"
- TEST41 wrong bind type SQLT_NUM
- Warning: oci_execute(): ORA-12899: %s "%s"."BIND_SQLTNUM_TAB"."VARCHAR2_T10" (%s: 40, %s: 10) in %sbind_sqltnum.php on line %d
- TEST42 insert numbers SQLT_NUM
- array(1) {
- ["DUMP(NUMBER_T)"]=>
- array(1) {
- [0]=>
- string(29) "Typ=2 Len=8: 42,0,0,0,0,0,0,0"
- }
- }
- TEST43 insert numbers SQLT_NUM
- array(1) {
- ["DUMP(NUMBER_T)"]=>
- array(1) {
- [0]=>
- string(29) "Typ=2 Len=8: 42,0,0,0,0,0,0,0"
- }
- }
- TEST44
- array(1) {
- ["DUMP(NUMBER_T)"]=>
- array(1) {
- [0]=>
- string(28) "Typ=2 Len=8: 0,0,0,0,0,0,0,0"
- }
- }
- TEST45
- array(1) {
- ["DUMP(NUMBER_T)"]=>
- array(1) {
- [0]=>
- string(44) "Typ=2 Len=8: 233,255,255,255,255,255,255,255"
- }
- }
- TEST46 insert numbers
- array(1) {
- ["DUMP(NUMBER_T)"]=>
- array(1) {
- [0]=>
- string(44) "Typ=2 Len=8: 233,255,255,255,255,255,255,255"
- }
- }
- TEST47
- array(1) {
- ["DUMP(NUMBER_T)"]=>
- array(1) {
- [0]=>
- string(29) "Typ=2 Len=8: 23,0,0,0,0,0,0,0"
- }
- }
- TEST48
- array(1) {
- ["DUMP(NUMBER_T92)"]=>
- array(1) {
- [0]=>
- string(16) "Typ=2 Len=1: 128"
- }
- }
- TEST49
- array(1) {
- ["DUMP(NUMBER_T92)"]=>
- array(1) {
- [0]=>
- string(16) "Typ=2 Len=1: 128"
- }
- }
- TEST50
- Warning: oci_execute(): ORA-01438: %s in %sbind_sqltnum.php on line %d
- array(1) {
- ["DUMP(NUMBER_T92)"]=>
- array(0) {
- }
- }
|