Binds the PHP array var_array
to the Oracle placeholder name
, which points to an Oracle PL/SQL array. Whether it will be used for input or output will be determined at run-time.
A valid OCI statement identifier.
The Oracle placeholder.
An array.
Sets the maximum length both for incoming and result arrays.
Sets maximum length for array items. If not specified or equals to -1, oci_bind_array_by_name() will find the longest element in the incoming array and will use it as the maximum length.
Should be used to set the type of PL/SQL array items. See list of available types below:
-
SQLT_NUM
- for arrays of NUMBER. -
SQLT_INT
- for arrays of INTEGER (Note: INTEGER it is actually a synonym for NUMBER(38), butSQLT_NUM
type won't work in this case even though they are synonyms). -
SQLT_FLT
- for arrays of FLOAT. -
SQLT_AFC
- for arrays of CHAR. -
SQLT_CHR
- for arrays of VARCHAR2. -
SQLT_VCS
- for arrays of VARCHAR. -
SQLT_AVC
- for arrays of CHARZ. -
SQLT_STR
- for arrays of STRING. -
SQLT_LVC
- for arrays of LONG VARCHAR. -
SQLT_ODT
- for arrays of DATE.
Returns TRUE
on success or FALSE
on failure.
<?php $conn = oci_connect("hr", "hrpwd", "localhost/XE"); if (!$conn) { $m = oci_error(); trigger_error(htmlentities($m['message']), E_USER_ERROR); } $create = "CREATE TABLE bind_example(name VARCHAR(20))"; $stid = oci_parse($conn, $create); oci_execute($stid); $create_pkg = " CREATE OR REPLACE PACKAGE ARRAYBINDPKG1 AS TYPE ARRTYPE IS TABLE OF VARCHAR(20) INDEX BY BINARY_INTEGER; PROCEDURE iobind(c1 IN OUT ARRTYPE); END ARRAYBINDPKG1;"; $stid = oci_parse($conn, $create_pkg); oci_execute($stid); $create_pkg_body = " CREATE OR REPLACE PACKAGE BODY ARRAYBINDPKG1 AS CURSOR CUR IS SELECT name FROM bind_example; PROCEDURE iobind(c1 IN OUT ARRTYPE) IS BEGIN -- Bulk Insert FORALL i IN INDICES OF c1 INSERT INTO bind_example VALUES (c1(i)); -- Fetch and reverse IF NOT CUR%ISOPEN THEN OPEN CUR; END IF; FOR i IN REVERSE 1..5 LOOP FETCH CUR INTO c1(i); IF CUR%NOTFOUND THEN CLOSE CUR; EXIT; END IF; END LOOP; END iobind; END ARRAYBINDPKG1;"; $stid = oci_parse($conn, $create_pkg_body); oci_execute($stid); $stid = oci_parse($conn, "BEGIN arraybindpkg1.iobind(:c1); END;"); $array = array("one", "two", "three", "four", "five"); oci_bind_array_by_name($stid, ":c1", $array, 5, -1, SQLT_CHR); oci_execute($stid); var_dump($array); ?>
Please login to continue.