Thies C. Arntzen wrote:

On Mon, Nov 04, 2002 at 06:16:04PM +0100, Fabien JOSEPH wrote:

I discovered recently that it was impossible to bind an output
placeholder plsql (an input work only).

Configuration 1 : Suse + Oracle 8i17 + oci (oracle) + PHP4.2.3
Configuration 2 : HPUX11 + Oracle 8i17 + oci(oracle) + PHP4.2.3
Configuration 3 : HPUX11 + Oracle 8i17 + oci(oracle) + PHP4.2.2

With script :
inoutdemo.sql
CREATE OR REPLACE PROCEDURE inoutdemo (par_in IN VARCHAR2, par_in_out IN
OUT VARCHAR2, par_out OUT VARCHAR2) IS BEGIN par_out:=par_in; par_in_out:=par_in||' '||par_in_out; END;

$db=OCILogon("toto","titi"); $stmt=OCIParse($db,"BEGIN inoutdemo(:in,:inout,:out);END;");
OCIBindByName($stmt,":in",$in,32);
OCIBindByName($stmt,":inout",$inout,32);
OCIBindByName($stmt,":out",$out,32); $in="Hello "; $inout="World!"; OCIExecute($stmt); echo $in."\n".$inout."\n".$out."\n";


//Result
Warning: OCIStmtExecute: ORA-06550: line 1, column 17: PLS-00553:
character set name is not recognized ORA-06550: line 0, column 0:

^^^^^^^^^^^^^^^^^^^^^^^^

i'd say you have a problem with your NLS_LANG setting.
re,
tc

PL/SQL: Compilation unit analysis terminated in
/opt/apache/htdocs/fab.php4 on line 58
Hello World!
I tested this script with the 3 configurations but it's the same error

I changed $in, &inout , &out into $&in, $&out, $&inout but it's the same
error

Please help me !!!


Fabien JOSEPH

--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


Thank you for your help but I set the NLS_LANG in my profile of user Oracle, and it's the same result.

But I think it's not just the problem of the conversion of string

The proof, I change my sql into :

inoutdemo_number.sql
CREATE OR REPLACE PROCEDURE inoutdemo_number (
par_in IN NUMBER, par_in_out IN OUT NUMBER, par_out OUT NUMBER) IS BEGIN par_out:=par_in; par_in_out:=par_in+1000;
END;

putenv( "ORACLE_HOME=/logi/ora817" );
putenv( "ORACLE_SID=MON_SID" );
putenv ("NLS_LANG=french_france.we8iso8859p1");
putenv ("ORA_NLS33=/logi/ora817/ocommon/nls/admin/data");

$db=OCILogon("toto","titi"); $stmt=OCIParse($db,"BEGIN inoutdemo_number(:in,:inout,:out);END;");
OCIBindByName($stmt,":in",$in,32);
OCIBindByName($stmt,":inout",$inout,32);
OCIBindByName($stmt,":out",$out,32); $in=5; $inout=5; OCIExecute($stmt); echo $in."\n".$inout."\n".$out."\n";

Result :
<br />
<b>Warning</b>: OCIStmtExecute: ORA-06550: line 1, column 13:
PLS-00553: character set name is not recognized
ORA-06550: line 0, column 0:
PL/SQL: Compilation unit analysis terminated
in <b>/opt/apache/htdocs/fab.php4</b> on line <b>60</b><br />
5
6

Conclusion, OciBindDyName with number (output) doesn't work.

It is strange PHP.





--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Reply via email to