Annotation of embedaddon/php/ext/oci8/tests/define6.phpt, revision 1.1

1.1     ! misho       1: --TEST--
        !             2: oci_define_by_name tests with REF CURSORs
        !             3: --SKIPIF--
        !             4: <?php
        !             5: $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
        !             6: require(dirname(__FILE__).'/skipif.inc');
        !             7: ?> 
        !             8: --FILE--
        !             9: <?php
        !            10: 
        !            11: require(dirname(__FILE__).'/connect.inc');
        !            12: 
        !            13: // Initialization
        !            14: 
        !            15: $stmtarray = array(
        !            16:     "drop table define6_tab",
        !            17:     "create table define6_tab (id number)",
        !            18:     "insert into define6_tab values (1)"
        !            19: );
        !            20: 
        !            21: oci8_test_sql_execute($c, $stmtarray);
        !            22: 
        !            23: // Run Test
        !            24: 
        !            25: $sql = 
        !            26: "DECLARE
        !            27:   TYPE curtype IS REF CURSOR;
        !            28:   cursor_var curtype;
        !            29: BEGIN
        !            30:   OPEN cursor_var FOR SELECT id FROM define6_tab;
        !            31:   :curs := cursor_var;
        !            32: END;";
        !            33: 
        !            34: echo "Test 1 - define last\n";
        !            35: 
        !            36: $s1 = oci_parse($c, $sql);
        !            37: $cursor1 = oci_new_cursor($c);
        !            38: oci_bind_by_name($s1, ":curs", $cursor1, -1, OCI_B_CURSOR);
        !            39: oci_execute($s1);
        !            40: oci_execute($cursor1);
        !            41: oci_define_by_name($cursor1, 'ID', $id1);
        !            42: while (oci_fetch_row($cursor1)) {
        !            43:     var_dump($id1);
        !            44: }
        !            45: 
        !            46: 
        !            47: echo "Test 2 - define last with preset var\n";
        !            48: 
        !            49: $s2 = oci_parse($c, $sql);
        !            50: $cursor2 = oci_new_cursor($c);
        !            51: oci_bind_by_name($s2, ":curs", $cursor2, -1, OCI_B_CURSOR);
        !            52: oci_execute($s2);
        !            53: oci_execute($cursor2);
        !            54: $id2 = '';
        !            55: oci_define_by_name($cursor2, 'ID', $id2);
        !            56: while (oci_fetch_row($cursor2)) {
        !            57:     var_dump($id2);
        !            58: }
        !            59: 
        !            60: 
        !            61: echo "Test 3 - define before cursor execute\n";
        !            62: 
        !            63: $s3 = oci_parse($c, $sql);
        !            64: $cursor3 = oci_new_cursor($c);
        !            65: oci_bind_by_name($s3, ":curs", $cursor3, -1, OCI_B_CURSOR);
        !            66: oci_execute($s3);
        !            67: oci_define_by_name($cursor3, 'ID', $id3);
        !            68: oci_execute($cursor3);
        !            69: while (oci_fetch_row($cursor3)) {
        !            70:     var_dump($id3);
        !            71: }
        !            72: 
        !            73: 
        !            74: echo "Test 4 - define before top level execute\n";
        !            75: 
        !            76: $s4 = oci_parse($c, $sql);
        !            77: $cursor4 = oci_new_cursor($c);
        !            78: oci_bind_by_name($s4, ":curs", $cursor4, -1, OCI_B_CURSOR);
        !            79: oci_define_by_name($cursor4, 'ID', $id4);
        !            80: oci_execute($s4);
        !            81: oci_execute($cursor4);
        !            82: while (oci_fetch_row($cursor4)) {
        !            83:     var_dump($id4);
        !            84: }
        !            85: 
        !            86: 
        !            87: echo "Test 5 - define before bind\n";
        !            88: 
        !            89: $s5 = oci_parse($c, $sql);
        !            90: $cursor5 = oci_new_cursor($c);
        !            91: oci_define_by_name($cursor5, 'ID', $id5);
        !            92: oci_bind_by_name($s5, ":curs", $cursor5, -1, OCI_B_CURSOR);
        !            93: oci_execute($s5);
        !            94: oci_execute($cursor5);
        !            95: while (oci_fetch_row($cursor5)) {
        !            96:     var_dump($id5);
        !            97: }
        !            98: 
        !            99: 
        !           100: echo "Test 6 - fetch on wrong handle\n";
        !           101: 
        !           102: $s6 = oci_parse($c, $sql);
        !           103: $cursor6 = oci_new_cursor($c);
        !           104: oci_define_by_name($cursor6, 'ID', $id6);
        !           105: oci_bind_by_name($s6, ":curs", $cursor6, -1, OCI_B_CURSOR);
        !           106: oci_execute($s6);
        !           107: oci_execute($cursor6);
        !           108: while (oci_fetch_row($s6)) {
        !           109:     var_dump($id6);
        !           110: }
        !           111: 
        !           112: 
        !           113: // Clean up
        !           114: 
        !           115: $stmtarray = array(
        !           116:     "drop table define6_tab"
        !           117: );
        !           118: 
        !           119: oci8_test_sql_execute($c, $stmtarray);
        !           120: 
        !           121: ?>
        !           122: ===DONE===
        !           123: <?php exit(0); ?>
        !           124: --EXPECTF--
        !           125: Test 1 - define last
        !           126: NULL
        !           127: Test 2 - define last with preset var
        !           128: string(0) ""
        !           129: Test 3 - define before cursor execute
        !           130: string(1) "1"
        !           131: Test 4 - define before top level execute
        !           132: string(1) "1"
        !           133: Test 5 - define before bind
        !           134: string(1) "1"
        !           135: Test 6 - fetch on wrong handle
        !           136: 
        !           137: Warning: oci_fetch_row(): ORA-24374: %s in %sdefine6.php on line %d
        !           138: ===DONE===

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