Updates to Tomato RAF including NGINX && PHP
[tomato.git] / release / src / router / php / ext / oci8 / tests / refcur_prefetch_3.phpt
blob8c0414042b0fca644b27fe99186c01e1884f3551
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");
16 --FILE--
17 <?php
18 require dirname(__FILE__)."/connect.inc";
20 //Create tables here
21 $stmtarray = array(
22     "drop table nescurtest",
23     "create table nescurtest(c1 varchar2(10))"
26 oci8_test_sql_execute($c, $stmtarray);
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");
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     }
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']);
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']));
59 $cnt = (print_roundtrips($c) - $initial_rt);
60 echo "Number of roundtrips made with prefetch count 5 for 10 rows is  $cnt\n";
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;
72 // Clean up  here
74 $stmtarray = array(
75     "drop table nescurtest"
78 oci8_test_sql_execute($c, $stmtarray);
80 echo "Done\n";
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"
91 Fetch Row using Nested cursor Query
92 array(1) {
93   [0]=>
94   %unicode|string%(%d) "test1"
96 Fetch Row using Nested cursor Query
97 array(1) {
98   [0]=>
99   %unicode|string%(%d) "test2"
101 Fetch Row using Nested cursor Query
102 array(1) {
103   [0]=>
104   %unicode|string%(%d) "test3"
106 Fetch Row using Nested cursor Query
107 array(1) {
108   [0]=>
109   %unicode|string%(%d) "test4"
111 Fetch Row using Nested cursor Query
112 array(1) {
113   [0]=>
114   %unicode|string%(%d) "test5"
116 Fetch Row using Nested cursor Query
117 array(1) {
118   [0]=>
119   %unicode|string%(%d) "test6"
121 Fetch Row using Nested cursor Query
122 array(1) {
123   [0]=>
124   %unicode|string%(%d) "test7"
126 Fetch Row using Nested cursor Query
127 array(1) {
128   [0]=>
129   %unicode|string%(%d) "test8"
131 Fetch Row using Nested cursor Query
132 array(1) {
133   [0]=>
134   %unicode|string%(%d) "test9"
136 Number of roundtrips made with prefetch count 5 for 10 rows is  3
137 Done