#19687 [Asn]: ociexecute calling procedure with boolean out parameter

From: 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

« previous php.bugs (#24688) next »