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

1.1       misho       1: --TEST--
                      2: SELECT oci_bind_by_name with SQLT_AFC aka CHAR and dates
                      3: --SKIPIF--
                      4: <?php
                      5: if (!extension_loaded('oci8')) die ("skip no oci8 extension");
                      6: require(dirname(__FILE__)."/connect.inc");
                      7: // The bind buffer size edge cases seem to change each DB version.
                      8: if (preg_match('/Release 10\.2\./', oci_server_version($c), $matches) !== 1) {
                      9:     if (preg_match('/Release 11\.2\.0\.2/', oci_server_version($c), $matches) !== 2) {
                     10:         die("skip expected output only valid when using Oracle 10gR2 or 11.2.0.2 databases");
                     11:     }
                     12: }
                     13: if (preg_match('/^11\./', oci_client_version()) != 1) {
                     14:     die("skip test expected to work only with Oracle 11g or greater version of client");
                     15: }
                     16: ?>
                     17: --ENV--
                     18: NLS_LANG=
                     19: --FILE--
                     20: <?php
                     21: 
                     22: require(dirname(__FILE__).'/connect.inc');
                     23: 
                     24: // Initialization
                     25: 
                     26: $stmtarray = array(
                     27:        "alter session set nls_date_format='YYYY-MM-DD'",
                     28:        "drop table bind_char_tab",
                     29:        "create table bind_char_tab (id number, c1 date)",
                     30:        "insert into bind_char_tab values (1, '2008-04-20')",
                     31: );
                     32:                                                 
                     33: oci8_test_sql_execute($c, $stmtarray);
                     34: 
                     35: // Run Test
                     36: 
                     37: $bv1 = '2008-04-20';
                     38: 
                     39: echo "Test 1.1: Type: default.  Length: default\n";
                     40: $s = oci_parse($c, "select * from bind_char_tab where c1 = :bv");
                     41: $r = oci_bind_by_name($s, ":bv", $bv1);
                     42: if ($r)
                     43:    do_e_q($s);
                     44: 
                     45: echo "Test 1.2: Type: AFC.  Length: default\n";
                     46: $r = oci_bind_by_name($s, ":bv", $bv1, -1, SQLT_AFC);
                     47: if ($r)
                     48:        do_e_q($s);
                     49: 
                     50: echo "Test 1.3: Type: AFC:  Length: 0\n";
                     51: $r = oci_bind_by_name($s, ":bv", $bv1, 0, SQLT_AFC);
                     52: if ($r)
                     53:        do_e_q($s);
                     54: 
                     55: echo "Test 1.4: Type: AFC:  Length: strlen\n";
                     56: $r = oci_bind_by_name($s, ":bv", $bv1, strlen($bv1), SQLT_AFC);
                     57: if ($r)
                     58:        do_e_q($s);
                     59: 
                     60: echo "Test 1.5: Type: AFC.  Length: strlen-1\n";
                     61: $r = oci_bind_by_name($s, ":bv", $bv1, strlen($bv1)-1, SQLT_AFC);
                     62: if ($r)
                     63:        do_e_q($s);
                     64: 
                     65: echo "Test 1.6: Type: AFC.  Length: strlen+1\n";
                     66: $r = oci_bind_by_name($s, ":bv", $bv1, strlen($bv1)+1, SQLT_AFC);
                     67: if ($r)
                     68:        do_e_q($s);
                     69: 
                     70: 
                     71: function do_e_q($s)
                     72: {
                     73:        echo "  Querying:\n";
                     74: 
                     75:        $r = @oci_execute($s);
                     76:        if (!$r) {
                     77:                $m = oci_error($s);
                     78:                echo "    Oci_execute error ORA-".$m['code']." Exiting Query\n";
                     79:                return;
                     80:        }
                     81:        while ($row = oci_fetch_array($s, OCI_ASSOC+OCI_RETURN_NULLS)) {
                     82:                foreach ($row as $item) {
                     83:                        echo "    :" . $item . ":\n";
                     84:                }
                     85:        }
                     86: }
                     87: 
                     88: // Cleanup
                     89: $stmtarray = array(
                     90:        "drop table bind_char_tab"
                     91: );
                     92:                                                 
                     93: oci8_test_sql_execute($c, $stmtarray);
                     94: 
                     95: echo "Done\n";
                     96: 
                     97: ?>
                     98: --EXPECT--
                     99: Test 1.1: Type: default.  Length: default
                    100:   Querying:
                    101:     :1:
                    102:     :2008-04-20:
                    103: Test 1.2: Type: AFC.  Length: default
                    104:   Querying:
                    105:     :1:
                    106:     :2008-04-20:
                    107: Test 1.3: Type: AFC:  Length: 0
                    108:   Querying:
                    109:     Oci_execute error ORA-1460 Exiting Query
                    110: Test 1.4: Type: AFC:  Length: strlen
                    111:   Querying:
                    112:     :1:
                    113:     :2008-04-20:
                    114: Test 1.5: Type: AFC.  Length: strlen-1
                    115:   Querying:
                    116:     :1:
                    117:     :2008-04-20:
                    118: Test 1.6: Type: AFC.  Length: strlen+1
                    119:   Querying:
                    120:     :1:
                    121:     :2008-04-20:
                    122: Done

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