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

1.1       misho       1: --TEST--
                      2: Bind with NUMBER column variants
                      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: --INI--
                     11: precision = 14
                     12: --FILE--
                     13: <?php
                     14: 
                     15: require(dirname(__FILE__).'/connect.inc');
                     16: 
                     17: // Initialization
                     18: 
                     19: $stmtarray = array(
                     20:        "drop table bind_number_tab",
                     21:        "create table bind_number_tab (
                     22:                                        id                                number,
                     23:                                        number_t6                 number(6),
                     24:                                        float_t                   float,
                     25:                                        binary_float_t    binary_float,
                     26:                                        binary_double_t   binary_double,
                     27:                                        decimal_t                 decimal,
                     28:                                        integer_t                 integer)"
                     29: );
                     30: 
                     31: oci8_test_sql_execute($c, $stmtarray);
                     32: 
                     33: function check_col($c, $colname, $id)
                     34: {
                     35:        $s = oci_parse($c, "select $colname from bind_number_tab where id = :id");
                     36:        oci_bind_by_name($s, ":id", $id);
                     37:        oci_execute($s);
                     38:        oci_fetch_all($s, $r);
                     39:        var_dump($r);
                     40: }
                     41: 
                     42: // Run Test
                     43: 
                     44: echo "Test 1 - invalid number\n";
                     45: 
                     46: $s = oci_parse($c, "INSERT INTO bind_number_tab (id, number_t6) VALUES (1, :n1)");
                     47: $n1 = "Hello";
                     48: oci_bind_by_name($s, ":n1", $n1);
                     49: oci_execute($s);
                     50: 
                     51: check_col($c, "number_t6", 1);
                     52: 
                     53: echo "\nTEST66 insert a float\n";
                     54: 
                     55: $s = oci_parse($c, "INSERT INTO bind_number_tab (id, float_t) VALUES (66, :f1)");
                     56: $f1 = 123.456;
                     57: oci_bind_by_name($s, ":f1", $f1);
                     58: oci_execute($s);
                     59: 
                     60: check_col($c, 'float_t', 66);
                     61: 
                     62: echo "\nTEST67 insert a binary float\n";
                     63: 
                     64: $s = oci_parse($c, "INSERT INTO bind_number_tab (id, binary_float_t) VALUES (67, :f1)");
                     65: $f1 = 567.456;
                     66: oci_bind_by_name($s, ":f1", $f1);
                     67: oci_execute($s);
                     68: 
                     69: check_col($c, 'binary_float_t', 67);
                     70: 
                     71: echo "\nTEST69 insert a binary double\n";
                     72: 
                     73: $s = oci_parse($c, "INSERT INTO bind_number_tab (id, binary_double_t) VALUES (69, :f1)");
                     74: $f1 = 567.456;
                     75: oci_bind_by_name($s, ":f1", $f1);
                     76: oci_execute($s);
                     77: 
                     78: check_col($c, 'binary_double_t', 69);
                     79: 
                     80: echo "\nTEST71 insert a decimal\n";
                     81: 
                     82: $s = oci_parse($c, "INSERT INTO bind_number_tab (id, decimal_t) VALUES (71, :f1)");
                     83: $f1 = 123.789;
                     84: oci_bind_by_name($s, ":f1", $f1);
                     85: oci_execute($s);
                     86: 
                     87: check_col($c, 'decimal_t', 71);
                     88: 
                     89: echo "\nTEST72 insert a decimal\n";
                     90: 
                     91: $s = oci_parse($c, "INSERT INTO bind_number_tab (id, decimal_t) VALUES (72, :f1)");
                     92: $f1 = 123.789;
                     93: oci_bind_by_name($s, ":f1", $f1, -1, SQLT_NUM);
                     94: oci_execute($s);
                     95: 
                     96: check_col($c, 'decimal_t', 72);
                     97: 
                     98: echo "\nTEST73 insert a double\n";
                     99: 
                    100: $s = oci_parse($c, "INSERT INTO bind_number_tab (id, binary_double_t) VALUES (73, :f1)");
                    101: $f1 = 483.589;
                    102: oci_bind_by_name($s, ":f1", $f1);
                    103: oci_execute($s);
                    104: 
                    105: check_col($c, 'binary_double_t', 73);
                    106: 
                    107: echo "\nTEST75 insert a INTEGER\n";
                    108: 
                    109: $s = oci_parse($c, "INSERT INTO bind_number_tab (id, integer_t) VALUES (75, :f1)");
                    110: $f1 = 589;
                    111: oci_bind_by_name($s, ":f1", $f1);
                    112: oci_execute($s);
                    113: 
                    114: check_col($c, 'integer_t', 75);
                    115: 
                    116: echo "\nTEST76 insert a INTEGER\n";
                    117: 
                    118: $s = oci_parse($c, "INSERT INTO bind_number_tab (id, integer_t) VALUES (76, :f1)");
                    119: $f1 = 42;
                    120: oci_bind_by_name($s, ":f1", $f1, -1, SQLT_INT);
                    121: oci_execute($s);
                    122: 
                    123: check_col($c, 'integer_t', 76);
                    124: 
                    125: 
                    126: // Clean up
                    127: 
                    128: $stmtarray = array(
                    129:        "drop table bind_number_tab"
                    130: );
                    131: 
                    132: oci8_test_sql_execute($c, $stmtarray);
                    133: 
                    134: ?>
                    135: ===DONE===
                    136: <?php exit(0); ?>
                    137: --EXPECTF--
                    138: Test 1 - invalid number
                    139: 
                    140: Warning: oci_execute(): ORA-01722: %s in %sbind_number.php on line %d
                    141: array(1) {
                    142:   ["NUMBER_T6"]=>
                    143:   array(0) {
                    144:   }
                    145: }
                    146: 
                    147: TEST66 insert a float
                    148: array(1) {
                    149:   ["FLOAT_T"]=>
                    150:   array(1) {
                    151:     [0]=>
                    152:     string(7) "123.456"
                    153:   }
                    154: }
                    155: 
                    156: TEST67 insert a binary float
                    157: array(1) {
                    158:   ["BINARY_FLOAT_T"]=>
                    159:   array(1) {
                    160:     [0]=>
                    161:     string(%r15|8%r) "%r(5.67455994E\+002|567.4560)%r"
                    162:   }
                    163: }
                    164: 
                    165: TEST69 insert a binary double
                    166: array(1) {
                    167:   ["BINARY_DOUBLE_T"]=>
                    168:   array(1) {
                    169:     [0]=>
                    170:     string(%r23|16%r) "%r(5.6745600000000002E\+002|567.456000000000)%r"
                    171:   }
                    172: }
                    173: 
                    174: TEST71 insert a decimal
                    175: array(1) {
                    176:   ["DECIMAL_T"]=>
                    177:   array(1) {
                    178:     [0]=>
                    179:     string(3) "124"
                    180:   }
                    181: }
                    182: 
                    183: TEST72 insert a decimal
                    184: array(1) {
                    185:   ["DECIMAL_T"]=>
                    186:   array(1) {
                    187:     [0]=>
                    188:     string(1) "0"
                    189:   }
                    190: }
                    191: 
                    192: TEST73 insert a double
                    193: array(1) {
                    194:   ["BINARY_DOUBLE_T"]=>
                    195:   array(1) {
                    196:     [0]=>
                    197:     string(%r12|16%r) "%r(4.83589E\+002|483.589000000000)%r"
                    198:   }
                    199: }
                    200: 
                    201: TEST75 insert a INTEGER
                    202: array(1) {
                    203:   ["INTEGER_T"]=>
                    204:   array(1) {
                    205:     [0]=>
                    206:     string(3) "589"
                    207:   }
                    208: }
                    209: 
                    210: TEST76 insert a INTEGER
                    211: array(1) {
                    212:   ["INTEGER_T"]=>
                    213:   array(1) {
                    214:     [0]=>
                    215:     string(2) "42"
                    216:   }
                    217: }
                    218: ===DONE===
                    219: 
                    220: 

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