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>