Annotation of embedaddon/php/ext/oci8/tests/refcur_prefetch_3.phpt, revision 1.1.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>