mirror of
https://github.com/php/php-src.git
synced 2024-10-21 16:33:44 +00:00
56 lines
1.2 KiB
PHP
56 lines
1.2 KiB
PHP
--TEST--
|
|
Bug #40078 (ORA-01405 when fetching NULL values using oci_bind_array_by_name())
|
|
--SKIPIF--
|
|
<?php if (!extension_loaded('oci8')) die("skip no oci8 extension"); ?>
|
|
--FILE--
|
|
<?php
|
|
|
|
require dirname(__FILE__).'/connect.inc';
|
|
|
|
$create_pkg = "
|
|
CREATE OR REPLACE PACKAGE ARRAYBINDPKG1 AS
|
|
TYPE ARRTYPE IS TABLE OF VARCHAR(20) INDEX BY BINARY_INTEGER;
|
|
PROCEDURE nullbind(c1 OUT ARRTYPE);
|
|
END ARRAYBINDPKG1;";
|
|
$statement = oci_parse($c, $create_pkg);
|
|
oci_execute($statement);
|
|
|
|
$create_pkg_body = "
|
|
CREATE OR REPLACE PACKAGE BODY ARRAYBINDPKG1 AS
|
|
PROCEDURE nullbind(c1 OUT ARRTYPE) IS
|
|
BEGIN
|
|
c1(1) := 'one';
|
|
c1(2) := 'two';
|
|
c1(3) := '';
|
|
c1(4) := 'four';
|
|
c1(5) := 'five';
|
|
END nullbind;
|
|
END ARRAYBINDPKG1;";
|
|
$statement = oci_parse($c, $create_pkg_body);
|
|
oci_execute($statement);
|
|
|
|
$statement = oci_parse($c, "BEGIN ARRAYBINDPKG1.nullbind(:c1); END;");
|
|
|
|
oci_bind_array_by_name($statement, ":c1", $array, 5, 20, SQLT_CHR);
|
|
|
|
oci_execute($statement);
|
|
|
|
var_dump($array);
|
|
|
|
echo "Done\n";
|
|
?>
|
|
--EXPECTF--
|
|
array(5) {
|
|
[0]=>
|
|
string(3) "one"
|
|
[1]=>
|
|
string(3) "two"
|
|
[2]=>
|
|
string(0) ""
|
|
[3]=>
|
|
string(4) "four"
|
|
[4]=>
|
|
string(4) "five"
|
|
}
|
|
Done
|