Annotation of embedaddon/php/ext/oci8/tests/bind_sqltnum.phpt, revision 1.1.1.1

1.1       misho       1: --TEST--
                      2: Bind with SQLT_NUM
                      3: --SKIPIF--
                      4: <?php
                      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");
                      8: }
                      9: ?>
                     10: --FILE--
                     11: <?php
                     12: 
                     13: require(dirname(__FILE__).'/connect.inc');
                     14: 
                     15: // Initialization
                     16: 
                     17: $stmtarray = array(
                     18:        "drop table bind_sqltnum_tab",
                     19: 
                     20:     "create table bind_sqltnum_tab (
                     21:         id                number,
                     22:         varchar2_t10      varchar2(10),
                     23:         number_t          number,
                     24:         number_t92        number(9,2))"
                     25: );
                     26: 
                     27: oci8_test_sql_execute($c, $stmtarray);
                     28: 
                     29: function check_col($c, $colname, $id)
                     30: {
                     31:     $s = oci_parse($c, "select $colname from bind_sqltnum_tab where id = :id");
                     32:     oci_bind_by_name($s, ":id", $id);
                     33:     oci_execute($s);
                     34:     oci_fetch_all($s, $r);
                     35:     var_dump($r);
                     36: }
                     37: 
                     38: 
                     39: // Run Test
                     40: 
                     41: echo "Test 1 - baseline test\n";
                     42: 
                     43: $s = oci_parse($c, "INSERT INTO bind_sqltnum_tab (id, varchar2_t10) VALUES (100, :c2)");
                     44: $c2 = "Hood";
                     45: $r = oci_bind_by_name($s, ":c2", $c2, -1);
                     46: if (!$r) {
                     47:     $e = oci_error($s);
                     48:     var_dump($e);
                     49: }
                     50: $r = oci_execute($s, OCI_DEFAULT);
                     51: if (!$r) {
                     52:     $e = oci_error($s);
                     53:     var_dump($e);
                     54: }
                     55: 
                     56: $s = oci_parse($c, "select id, varchar2_t10 from bind_sqltnum_tab");
                     57: oci_execute($s);
                     58: oci_fetch_all($s, $data);
                     59: var_dump($data);
                     60: 
                     61: echo "Test 2 - SQLT_NUM to a VARCHAR2 column\n";
                     62: 
                     63: $s = oci_parse($c, "INSERT INTO bind_sqltnum_tab (id, varchar2_t10) VALUES (100, :c2)");
                     64: $c2 = "Hood";
                     65: $r = oci_bind_by_name($s, ":c2", $c2, -1, SQLT_NUM);
                     66: if (!$r) {
                     67:     $e = oci_error($s);
                     68:     var_dump($e['message']);
                     69: }
                     70: $r = oci_execute($s, OCI_DEFAULT);
                     71: if (!$r) {
                     72:     $e = oci_error($s);
                     73:     var_dump($e['message']);
                     74: }
                     75: 
                     76: echo "\nTEST41 wrong bind type SQLT_NUM\n";
                     77: 
                     78: $c2 = "Hood41";
                     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);
                     81: oci_execute($s);
                     82: 
                     83: echo "\nTEST42 insert numbers SQLT_NUM\n";
                     84: 
                     85: $s = oci_parse($c, "INSERT INTO bind_sqltnum_tab (id, number_t) VALUES (42, :n1)");
                     86: $n1 = 42;
                     87: oci_bind_by_name($s, ":n1", $n1, -1, SQLT_NUM);
                     88: oci_execute($s);
                     89: 
                     90: check_col($c, 'number_t', 42);
                     91: 
                     92: echo "\nTEST43 insert numbers SQLT_NUM\n";
                     93: 
                     94: $s = oci_parse($c, "INSERT INTO bind_sqltnum_tab (id, number_t) VALUES (43, :n1)");
                     95: $n1 = 42.69;
                     96: oci_bind_by_name($s, ":n1", $n1, -1, SQLT_NUM);
                     97: oci_execute($s);
                     98: 
                     99: check_col($c, 'number_t', 43);
                    100: 
                    101: echo "\nTEST44\n";
                    102: 
                    103: $s = oci_parse($c, "INSERT INTO bind_sqltnum_tab (id, number_t) VALUES (44, :n1)");
                    104: $n1 = 0;
                    105: oci_bind_by_name($s, ":n1", $n1, -1, SQLT_NUM);
                    106: oci_execute($s);
                    107: 
                    108: check_col($c, 'number_t', 44);
                    109: 
                    110: echo "\nTEST45\n";
                    111: 
                    112: $s = oci_parse($c, "INSERT INTO bind_sqltnum_tab (id, number_t) VALUES (45, :n1)");
                    113: $n1 = -23;
                    114: oci_bind_by_name($s, ":n1", $n1, -1, SQLT_NUM);
                    115: oci_execute($s);
                    116: 
                    117: check_col($c, 'number_t', 45);
                    118: 
                    119: echo "\nTEST46 insert numbers\n";
                    120: 
                    121: $s = oci_parse($c, "INSERT INTO bind_sqltnum_tab (id, number_t) VALUES (46, :n1)");
                    122: $n1 = "-23";
                    123: oci_bind_by_name($s, ":n1", $n1, -1, SQLT_NUM);
                    124: oci_execute($s);
                    125: 
                    126: check_col($c, 'number_t', 46);
                    127: 
                    128: echo "\nTEST47\n";
                    129: 
                    130: $s = oci_parse($c, "INSERT INTO bind_sqltnum_tab (id, number_t) VALUES (47, :n1)");
                    131: $n1 = "23";
                    132: oci_bind_by_name($s, ":n1", $n1, -1, SQLT_NUM);
                    133: oci_execute($s);
                    134: 
                    135: check_col($c, 'number_t', 47);
                    136: 
                    137: echo "\nTEST48\n";
                    138: 
                    139: $s = oci_parse($c, "INSERT INTO bind_sqltnum_tab (id, number_t92) VALUES (48, :n1)");
                    140: $n1 = 123.56;
                    141: oci_bind_by_name($s, ":n1", $n1, -1, SQLT_NUM);
                    142: oci_execute($s);
                    143: 
                    144: check_col($c, 'number_t92', 48);
                    145: 
                    146: echo "\nTEST49\n";
                    147: 
                    148: $s = oci_parse($c, "INSERT INTO bind_sqltnum_tab (id, number_t92) VALUES (49, :n1)");
                    149: $n1 = "123.56";
                    150: oci_bind_by_name($s, ":n1", $n1, -1, SQLT_NUM);
                    151: oci_execute($s);
                    152: 
                    153: check_col($c, 'number_t92', 49);
                    154: 
                    155: echo "\nTEST50\n";
                    156: 
                    157: $s = oci_parse($c, "INSERT INTO bind_sqltnum_tab (id, number_t92) VALUES (50, :n1)");
                    158: $n1 = "";
                    159: oci_bind_by_name($s, ":n1", $n1, -1, SQLT_NUM);
                    160: oci_execute($s);
                    161: 
                    162: check_col($c, 'number_t92', 50);
                    163: 
                    164: // Clean up
                    165: 
                    166: $stmtarray = array(
                    167:        "drop table bind_sqltnum_tab"
                    168: );
                    169: 
                    170: oci8_test_sql_execute($c, $stmtarray);
                    171: 
                    172: ?>
                    173: ===DONE===
                    174: <?php exit(0); ?>
                    175: --EXPECTF--
                    176: Test 1 - baseline test
                    177: array(2) {
                    178:   ["ID"]=>
                    179:   array(1) {
                    180:     [0]=>
                    181:     string(3) "100"
                    182:   }
                    183:   ["VARCHAR2_T10"]=>
                    184:   array(1) {
                    185:     [0]=>
                    186:     string(4) "Hood"
                    187:   }
                    188: }
                    189: Test 2 - SQLT_NUM to a VARCHAR2 column
                    190: 
                    191: Warning: oci_execute(): ORA-12899: %s (%s: 40, %s: 10) in %sbind_sqltnum.php on line %d
                    192: string(%d) "ORA-12899: %s"
                    193: 
                    194: TEST41 wrong bind type SQLT_NUM
                    195: 
                    196: Warning: oci_execute(): ORA-12899: %s "%s"."BIND_SQLTNUM_TAB"."VARCHAR2_T10" (%s: 40, %s: 10) in %sbind_sqltnum.php on line %d
                    197: 
                    198: TEST42 insert numbers SQLT_NUM
                    199: array(1) {
                    200:   ["NUMBER_T"]=>
                    201:   array(1) {
                    202:     [0]=>
                    203:     NULL
                    204:   }
                    205: }
                    206: 
                    207: TEST43 insert numbers SQLT_NUM
                    208: array(1) {
                    209:   ["NUMBER_T"]=>
                    210:   array(1) {
                    211:     [0]=>
                    212:     NULL
                    213:   }
                    214: }
                    215: 
                    216: TEST44
                    217: array(1) {
                    218:   ["NUMBER_T"]=>
                    219:   array(1) {
                    220:     [0]=>
                    221:     string(127) "-000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
                    222:   }
                    223: }
                    224: 
                    225: TEST45
                    226: array(1) {
                    227:   ["NUMBER_T"]=>
                    228:   array(1) {
                    229:     [0]=>
                    230:     NULL
                    231:   }
                    232: }
                    233: 
                    234: TEST46 insert numbers
                    235: array(1) {
                    236:   ["NUMBER_T"]=>
                    237:   array(1) {
                    238:     [0]=>
                    239:     NULL
                    240:   }
                    241: }
                    242: 
                    243: TEST47
                    244: array(1) {
                    245:   ["NUMBER_T"]=>
                    246:   array(1) {
                    247:     [0]=>
                    248:     NULL
                    249:   }
                    250: }
                    251: 
                    252: TEST48
                    253: array(1) {
                    254:   ["NUMBER_T92"]=>
                    255:   array(1) {
                    256:     [0]=>
                    257:     string(1) "0"
                    258:   }
                    259: }
                    260: 
                    261: TEST49
                    262: array(1) {
                    263:   ["NUMBER_T92"]=>
                    264:   array(1) {
                    265:     [0]=>
                    266:     string(1) "0"
                    267:   }
                    268: }
                    269: 
                    270: TEST50
                    271: 
                    272: Warning: oci_execute(): ORA-01438: %s in %sbind_sqltnum.php on line %d
                    273: array(1) {
                    274:   ["NUMBER_T92"]=>
                    275:   array(0) {
                    276:   }
                    277: }
                    278: ===DONE===

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>