Annotation of embedaddon/php/ext/oci8/tests/bug40078.phpt, revision 1.1.1.1
1.1 misho 1: --TEST--
2: Bug #40078 (ORA-01405 when fetching NULL values using oci_bind_array_by_name())
3: --SKIPIF--
4: <?php
5: $target_dbs = array('oracledb' => true, 'timesten' => false); // test runs on these DBs
6: require(dirname(__FILE__).'/skipif.inc');
7: ?>
8: --FILE--
9: <?php
10:
11: require dirname(__FILE__).'/connect.inc';
12:
13: $create_pkg = "
14: CREATE OR REPLACE PACKAGE ARRAYBINDPKG1 AS
15: TYPE ARRTYPE IS TABLE OF VARCHAR(20) INDEX BY BINARY_INTEGER;
16: PROCEDURE nullbind(c1 OUT ARRTYPE);
17: END ARRAYBINDPKG1;";
18: $statement = oci_parse($c, $create_pkg);
19: oci_execute($statement);
20:
21: $create_pkg_body = "
22: CREATE OR REPLACE PACKAGE BODY ARRAYBINDPKG1 AS
23: PROCEDURE nullbind(c1 OUT ARRTYPE) IS
24: BEGIN
25: c1(1) := 'one';
26: c1(2) := 'two';
27: c1(3) := '';
28: c1(4) := 'four';
29: c1(5) := 'five';
30: END nullbind;
31: END ARRAYBINDPKG1;";
32: $statement = oci_parse($c, $create_pkg_body);
33: oci_execute($statement);
34:
35: $statement = oci_parse($c, "BEGIN ARRAYBINDPKG1.nullbind(:c1); END;");
36:
37: oci_bind_array_by_name($statement, ":c1", $array, 5, 20, SQLT_CHR);
38:
39: oci_execute($statement);
40:
41: var_dump($array);
42:
43: echo "Done\n";
44: ?>
45: --EXPECTF--
46: array(5) {
47: [0]=>
48: string(3) "one"
49: [1]=>
50: string(3) "two"
51: [2]=>
52: string(0) ""
53: [3]=>
54: string(4) "four"
55: [4]=>
56: string(4) "five"
57: }
58: Done
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>