#19687 [Asn]: ociexecute calling procedure with boolean out parameter
| From: | maxim@php.net | Date: | Tue, 12 Nov 2002 12:27:33 +0000 |
| Subject: | #19687 [Asn]: ociexecute calling procedure with boolean out parameter | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-24688@lists.php.net to get a copy of this message | ||
ID: 19687
Updated by: maxim@php.net
Reported By: yk@teamlog.com
Status: Assigned
-Bug Type: OCI8 related
+Bug Type: Feature/Change Request
Operating System: win 2k
PHP Version: 4.2.1
Assigned To: maxim
New Comment:
An update:
Oracle Call Interface specs say there are a few types that cannot be
returned to client from DB. These are BOOLEAN, RECORD and INDEX TABLE.
So, for BOOLEAN to work with OCI8 extebsion there must be a wrapper
added in some way that, still in PLSQL encodes/decodes BOOLEAN to/from
NUMBER that can be returned to OCI8 extension and then used by PHP as
PHP's BOOLEAN type.
In other words - this issue is not really any kind of bug but rather an
expected behavior. Yet, I'd love to get it working somehow.
I reclassify it to the feature request and will work on it some time
later.
Thanks,
Maxim Maletsky
Previous Comments:
------------------------------------------------------------------------
[2002-11-10 14:52:35] maxim@php.net
I was planning to take over this one ...
------------------------------------------------------------------------
[2002-11-10 00:18:56] maxim@php.net
It is actually not a bug but rather the limitation of binding
variables.
We hope to add it some time soon.
Maxim Maletsky
------------------------------------------------------------------------
[2002-10-01 06:54:18] yk@teamlog.com
PROBLEM OCIEXECUTE WITH BOOLEAN OUTPUT PARAMETERS:
The call to the following stored procedure (oracle 8.1.7)
from php4.2.1 (as ampache module)
does not work with a boolean parameter.
It works fine however when I change boolean to NUMBER.
/************ the procedure in PL SQL ********************/
PROCEDURE testit(arg1 IN OUT BOOLEAN) IS
BEGIN
arg1:=TRUE;
END;
/*********************************************************/
/************ the call from PHP **************************/
$stmt = OCIParse($connector->_connectionID, "BEGIN testit(:arg1);
END;");
OCIBindByName($stmt,":arg1",$ret,10);
OCIExecute($stmt);
OCIFreeStatement($stmt);
/*********************************************************/
/************ the warning in french :-) ******************/
Warning: OCIStmtExecute: ORA-06550: Ligne 1, colonne 7 : PLS-00306:
numéro ou types d'arguments erronés dans appel à 'TESTIT' ORA-06550:
Ligne 1, colonne 7 : PL/SQL: Statement ignored in
d:\apache\htdocs\iac\test.php on line 32
false
(traduction of the warning : wrong argument number or type)
/*********************************************************/
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=19687&edit=1