Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

oci_bind_array_by_name(3) [php man page]

OCI_BIND_ARRAY_BY_NAME(3)												 OCI_BIND_ARRAY_BY_NAME(3)

oci_bind_array_by_name - Binds a PHP array to an Oracle PL/SQL array parameter

SYNOPSIS
bool oci_bind_array_by_name (resource $statement, string $name, array &$var_array, int $max_table_length, [int $max_item_length = -1], [int $type = SQLT_AFC]) DESCRIPTION
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. PARAMETERS
o $statement - A valid OCI statement identifier. o $name - The Oracle placeholder. o $var_array - An array. o $max_table_length - Sets the maximum length both for incoming and result arrays. o $max_item_length - Sets maximum length for array items. If not specified or equals to -1, oci_bind_array_by_name(3) will find the longest element in the incoming array and will use it as the maximum length. o $type - Should be used to set the type of PL/SQL array items. See list of available types below: o SQLT_NUM - for arrays of NUMBER. o SQLT_INT - for arrays of INTEGER (Note: INTEGER it is actually a synonym for NUMBER(38), but SQLT_NUM type won't work in this case even though they are synonyms). o SQLT_FLT - for arrays of FLOAT. o SQLT_AFC - for arrays of CHAR. o SQLT_CHR - for arrays of VARCHAR2. o SQLT_VCS - for arrays of VARCHAR. o SQLT_AVC - for arrays of CHARZ. o SQLT_STR - for arrays of STRING. o SQLT_LVC - for arrays of LONG VARCHAR. o SQLT_ODT - for arrays of DATE. RETURN VALUES
Returns TRUE on success or FALSE on failure. EXAMPLES
Example #1 oci_bind_array_by_name(3) example <?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); ?> PHP Documentation Group OCI_BIND_ARRAY_BY_NAME(3)

Check Out this Related Man Page

OCI_FIELD_SCALE(3)														OCI_FIELD_SCALE(3)

oci_field_scale - Tell the scale of the field

SYNOPSIS
int oci_field_scale (resource $statement, mixed $field) DESCRIPTION
Returns the scale of the column with $field index. For FLOAT columns, precision is nonzero and scale is -127. If precision is 0, then column is NUMBER. Else it's NUMBER(precision, scale). PARAMETERS
o $statement - A valid OCI statement identifier. o $field - Can be the field's index (1-based) or name. RETURN VALUES
Returns the scale as an integer, or FALSE on errors. EXAMPLES
Example #1 oci_field_scale(3) Example <?php // Create the table with: // CREATE TABLE mytab (c1 NUMBER, c2 FLOAT, c3 NUMBER(4), c4 NUMBER(5,3)); $conn = oci_connect("hr", "hrpwd", "localhost/XE"); if (!$conn) { $m = oci_error(); trigger_error(htmlentities($m['message']), E_USER_ERROR); } $stid = oci_parse($conn, "SELECT * FROM mytab"); oci_execute($stid, OCI_DESCRIBE_ONLY); // Use OCI_DESCRIBE_ONLY if not fetching rows $ncols = oci_num_fields($stid); for ($i = 1; $i <= $ncols; $i++) { echo oci_field_name($stid, $i) . " " . oci_field_precision($stid, $i) . " " . oci_field_scale($stid, $i) . "<br> "; } // Outputs: // C1 0 -127 // C2 126 -127 // C3 4 0 // C4 5 3 oci_free_statement($stid); oci_close($conn); ?> NOTES
Note In PHP versions before 5.0.0 you must use ocicolumnscale(3) instead. This name still can be used, it was left as alias of oci_field_scale(3) for downwards compatability. This, however, is deprecated and not recommended. SEE ALSO
oci_field_precision(3), oci_field_type(3). PHP Documentation Group OCI_FIELD_SCALE(3)
Man Page