Annotation of embedaddon/php/ext/oci8/tests/refcur_prefetch_3.phpt, revision 1.1
1.1 ! misho 1: --TEST--
! 2: Prefetch with Nested cursors with INI setting.
! 3: --INI--
! 4: oci8.default_prefetch=5
! 5: --SKIPIF--
! 6: <?php if (!extension_loaded('oci8')) die("skip no oci8 extension");
! 7: if (!extension_loaded('oci8')) die("skip no oci8 extension");
! 8: require(dirname(__FILE__)."/connect.inc");
! 9: if (preg_match('/Release (11\.2|12)\./', oci_server_version($c), $matches) !== 1) {
! 10: die("skip expected output only valid when using Oracle 11gR2 or greater databases");
! 11: } else if (preg_match('/^(11\.2|12)\./', oci_client_version()) != 1) {
! 12: die("skip test expected to work only with Oracle 11gR2 or greater version of client");
! 13: }
! 14:
! 15: ?>
! 16: --FILE--
! 17: <?php
! 18: require dirname(__FILE__)."/connect.inc";
! 19:
! 20: //Create tables here
! 21: $stmtarray = array(
! 22: "drop table nescurtest",
! 23: "create table nescurtest(c1 varchar2(10))"
! 24: );
! 25:
! 26: oci8_test_sql_execute($c, $stmtarray);
! 27:
! 28: // Insert 500 rows into the table.
! 29: $insert_sql = "INSERT INTO nescurtest (c1) VALUES (:c1)";
! 30: if (!($s = oci_parse($c, $insert_sql))) {
! 31: die("oci_parse(insert) failed!\n");
! 32: }
! 33:
! 34: for ($i = 0; $i<=500; $i++) {
! 35: $val2 = 'test'.$i;
! 36: oci_bind_by_name($s,':c1',$val2);
! 37: if (!oci_execute($s)) {
! 38: die("oci_execute(insert) failed!\n");
! 39: }
! 40: }
! 41:
! 42: echo"-----------------------------------------------\n";
! 43: echo "Test with Nested Cursors\n";
! 44: echo"-----------------------------------------------\n";
! 45: $cur1 = oci_new_cursor($c);
! 46: $sqlstmt = "select cursor(select * from nescurtest) curs1 from dual";
! 47: $s = oci_parse($c,$sqlstmt);
! 48: oci_execute($s);
! 49: $data = oci_fetch_array($s);
! 50: oci_execute($data['CURS1']);
! 51:
! 52: // Calculate round-trips
! 53: $initial_rt = print_roundtrips($c);
! 54: for ($i = 0;$i<10;$i++) {
! 55: echo "Fetch Row using Nested cursor Query\n";
! 56: var_dump(oci_fetch_row($data['CURS1']));
! 57: }
! 58:
! 59: $cnt = (print_roundtrips($c) - $initial_rt);
! 60: echo "Number of roundtrips made with prefetch count 5 for 10 rows is $cnt\n";
! 61:
! 62: function print_roundtrips($c) {
! 63: $sql_stmt = "select value from v\$mystat a,v\$statname c where
! 64: a.statistic#=c.statistic# and c.name='SQL*Net roundtrips to/from client'";
! 65: $s = oci_parse($c,$sql_stmt);
! 66: oci_define_by_name($s,"VALUE",$value);
! 67: oci_execute($s);
! 68: oci_fetch($s);
! 69: return $value;
! 70: }
! 71:
! 72: // Clean up here
! 73:
! 74: $stmtarray = array(
! 75: "drop table nescurtest"
! 76: );
! 77:
! 78: oci8_test_sql_execute($c, $stmtarray);
! 79:
! 80: echo "Done\n";
! 81: ?>
! 82: --EXPECTF--
! 83: -----------------------------------------------
! 84: Test with Nested Cursors
! 85: -----------------------------------------------
! 86: Fetch Row using Nested cursor Query
! 87: array(1) {
! 88: [0]=>
! 89: %unicode|string%(%d) "test0"
! 90: }
! 91: Fetch Row using Nested cursor Query
! 92: array(1) {
! 93: [0]=>
! 94: %unicode|string%(%d) "test1"
! 95: }
! 96: Fetch Row using Nested cursor Query
! 97: array(1) {
! 98: [0]=>
! 99: %unicode|string%(%d) "test2"
! 100: }
! 101: Fetch Row using Nested cursor Query
! 102: array(1) {
! 103: [0]=>
! 104: %unicode|string%(%d) "test3"
! 105: }
! 106: Fetch Row using Nested cursor Query
! 107: array(1) {
! 108: [0]=>
! 109: %unicode|string%(%d) "test4"
! 110: }
! 111: Fetch Row using Nested cursor Query
! 112: array(1) {
! 113: [0]=>
! 114: %unicode|string%(%d) "test5"
! 115: }
! 116: Fetch Row using Nested cursor Query
! 117: array(1) {
! 118: [0]=>
! 119: %unicode|string%(%d) "test6"
! 120: }
! 121: Fetch Row using Nested cursor Query
! 122: array(1) {
! 123: [0]=>
! 124: %unicode|string%(%d) "test7"
! 125: }
! 126: Fetch Row using Nested cursor Query
! 127: array(1) {
! 128: [0]=>
! 129: %unicode|string%(%d) "test8"
! 130: }
! 131: Fetch Row using Nested cursor Query
! 132: array(1) {
! 133: [0]=>
! 134: %unicode|string%(%d) "test9"
! 135: }
! 136: Number of roundtrips made with prefetch count 5 for 10 rows is 3
! 137: Done
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>