|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
PatchesPull Requests |
|||||||||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Sun Oct 26 05:00:01 2025 UTC |
Description: ------------ When trying to use the "oci_new_collection" function with "RECORD" of PL / SQL, the type is never found. If we try to use "oci_bind_array_by_name" instead, as proposed in #38791, then the execution of the procedure returns that the type is bad or unknown. Test script: --------------- /* Oracle */ CREATE OR REPLACE PACKAGE OPS$AGIX1NSG.pk_g_v AS TYPE T_V IS RECORD ( nm h1v.nm%TYPE, nmp h1v.nmp%TYPE, no h1v.no%TYPE, user h1v.user%TYPE ); FUNCTION rech (pr_NO IN VARCHAR2, pr_DATE IN DATE, pr_V OUT T_V) RETURN NUMBER; END pk_g_v; /* Php */ $stid = oci_parse($conn, "begin :r_NBRESULT := pk_g_v.rech('3208010896', TO_DATE('27/01/2017', 'DD/MM/YYYY'), :pr_V); end;"); $pr_V = oci_new_collection($conn, 'T_V', 'PK_G_V'); oci_bind_by_name($stid, ':pr_V', $pr_V, -1, SQLT_REC); oci_bind_by_name($stid, ':r_NBRESULT', $r_NBRESULT); Actual result: -------------- PHP Warning: oci_new_collection(): OCI-22303: type "PK_G_V"."T_V" not found in ...