2 oci_bind_array_by_name() and SQLT_ODT
5 $target_dbs = array('oracledb' => true, 'timesten' => false); // test runs on these DBs
6 require(dirname(__FILE__).'/skipif.inc');
11 require dirname(__FILE__).'/connect.inc';
13 $drop = "DROP table bind_test";
14 $statement = oci_parse($c, $drop);
15 @oci_execute($statement);
17 $create = "CREATE table bind_test(name DATE)";
18 $statement = oci_parse($c, $create);
19 oci_execute($statement);
22 CREATE OR REPLACE PACKAGE ARRAYBINDPKG1 AS
23 TYPE ARRTYPE IS TABLE OF DATE INDEX BY BINARY_INTEGER;
24 PROCEDURE iobind(c1 IN OUT ARRTYPE);
26 $statement = oci_parse($c, $create_pkg);
27 oci_execute($statement);
30 CREATE OR REPLACE PACKAGE BODY ARRAYBINDPKG1 AS
31 CURSOR CUR IS SELECT name FROM bind_test;
32 PROCEDURE iobind(c1 IN OUT ARRTYPE) IS
35 INSERT INTO bind_test VALUES (c1(i));
37 IF NOT CUR%ISOPEN THEN
40 FOR i IN REVERSE 1..5 LOOP
49 $statement = oci_parse($c, $create_pkg_body);
50 oci_execute($statement);
52 $statement = oci_parse($c, "BEGIN ARRAYBINDPKG1.iobind(:c1); END;");
54 $array = Array("06-DEC-05","10-DEC-80","21-AUG-91","26-OCT-17","05-NOV-05");
56 oci_bind_array_by_name($statement, ":c1", $array, 5, 5, SQLT_ODT);
58 oci_execute($statement);