mirror of
https://github.com/php/php-src.git
synced 2025-01-06 02:43:34 +08:00
0d909f5bfc
Delete two obsolete .phpt's.
146 lines
3.6 KiB
PHP
146 lines
3.6 KiB
PHP
--TEST--
|
|
Prefetch with Nested cursors with INI setting.
|
|
--INI--
|
|
oci8.default_prefetch=5
|
|
--SKIPIF--
|
|
<?php if (!extension_loaded('oci8')) die("skip no oci8 extension");
|
|
if (!extension_loaded('oci8')) die("skip no oci8 extension");
|
|
require(dirname(__FILE__)."/connect.inc");
|
|
preg_match('/.*Release ([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)*/', oci_server_version($c), $matches);
|
|
if (!(isset($matches[0]) &&
|
|
(($matches[1] == 11 && $matches[2] >= 2) ||
|
|
($matches[1] >= 12)
|
|
))) {
|
|
die("skip expected output only valid when using Oracle 11gR2 or greater database server");
|
|
}
|
|
preg_match('/^([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)/', oci_client_version(), $matches);
|
|
if (!(isset($matches[0]) &&
|
|
(($matches[1] == 11 && $matches[2] >= 2) ||
|
|
($matches[1] >= 12)
|
|
))) {
|
|
die("skip test expected to work only with Oracle 11gR2 or greater version of client");
|
|
}
|
|
?>
|
|
--FILE--
|
|
<?php
|
|
require dirname(__FILE__)."/connect.inc";
|
|
|
|
//Create tables here
|
|
$stmtarray = array(
|
|
"drop table nescurtest",
|
|
"create table nescurtest(c1 varchar2(10))"
|
|
);
|
|
|
|
oci8_test_sql_execute($c, $stmtarray);
|
|
|
|
// Insert 500 rows into the table.
|
|
$insert_sql = "INSERT INTO nescurtest (c1) VALUES (:c1)";
|
|
if (!($s = oci_parse($c, $insert_sql))) {
|
|
die("oci_parse(insert) failed!\n");
|
|
}
|
|
|
|
for ($i = 0; $i<=500; $i++) {
|
|
$val2 = 'test'.$i;
|
|
oci_bind_by_name($s,':c1',$val2);
|
|
if (!oci_execute($s)) {
|
|
die("oci_execute(insert) failed!\n");
|
|
}
|
|
}
|
|
|
|
echo"-----------------------------------------------\n";
|
|
echo "Test with Nested Cursors\n";
|
|
echo"-----------------------------------------------\n";
|
|
$cur1 = oci_new_cursor($c);
|
|
$sqlstmt = "select cursor(select * from nescurtest) curs1 from dual";
|
|
$s = oci_parse($c,$sqlstmt);
|
|
oci_execute($s);
|
|
$data = oci_fetch_array($s);
|
|
oci_execute($data['CURS1']);
|
|
|
|
// Calculate round-trips
|
|
$initial_rt = print_roundtrips($c);
|
|
for ($i = 0;$i<10;$i++) {
|
|
echo "Fetch Row using Nested cursor Query\n";
|
|
var_dump(oci_fetch_row($data['CURS1']));
|
|
}
|
|
|
|
$cnt = (print_roundtrips($c) - $initial_rt);
|
|
echo "Number of roundtrips made with prefetch count 5 for 10 rows is $cnt\n";
|
|
|
|
function print_roundtrips($c) {
|
|
$sql_stmt = "select value from v\$mystat a,v\$statname c where
|
|
a.statistic#=c.statistic# and c.name='SQL*Net roundtrips to/from client'";
|
|
$s = oci_parse($c,$sql_stmt);
|
|
oci_define_by_name($s,"VALUE",$value);
|
|
oci_execute($s);
|
|
oci_fetch($s);
|
|
return $value;
|
|
}
|
|
|
|
// Clean up here
|
|
|
|
$stmtarray = array(
|
|
"drop table nescurtest"
|
|
);
|
|
|
|
oci8_test_sql_execute($c, $stmtarray);
|
|
|
|
echo "Done\n";
|
|
?>
|
|
--EXPECTF--
|
|
-----------------------------------------------
|
|
Test with Nested Cursors
|
|
-----------------------------------------------
|
|
Fetch Row using Nested cursor Query
|
|
array(1) {
|
|
[0]=>
|
|
string(%d) "test0"
|
|
}
|
|
Fetch Row using Nested cursor Query
|
|
array(1) {
|
|
[0]=>
|
|
string(%d) "test1"
|
|
}
|
|
Fetch Row using Nested cursor Query
|
|
array(1) {
|
|
[0]=>
|
|
string(%d) "test2"
|
|
}
|
|
Fetch Row using Nested cursor Query
|
|
array(1) {
|
|
[0]=>
|
|
string(%d) "test3"
|
|
}
|
|
Fetch Row using Nested cursor Query
|
|
array(1) {
|
|
[0]=>
|
|
string(%d) "test4"
|
|
}
|
|
Fetch Row using Nested cursor Query
|
|
array(1) {
|
|
[0]=>
|
|
string(%d) "test5"
|
|
}
|
|
Fetch Row using Nested cursor Query
|
|
array(1) {
|
|
[0]=>
|
|
string(%d) "test6"
|
|
}
|
|
Fetch Row using Nested cursor Query
|
|
array(1) {
|
|
[0]=>
|
|
string(%d) "test7"
|
|
}
|
|
Fetch Row using Nested cursor Query
|
|
array(1) {
|
|
[0]=>
|
|
string(%d) "test8"
|
|
}
|
|
Fetch Row using Nested cursor Query
|
|
array(1) {
|
|
[0]=>
|
|
string(%d) "test9"
|
|
}
|
|
Number of roundtrips made with prefetch count 5 for 10 rows is 3
|
|
Done
|