Re: OCIBindByName with Oracle 8i17 problem ?!

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [PHP Home]     [PHP Users]     [Postgresql Discussion]     [Kernel Newbies]     [Postgresql]     [Yosemite News]

  Powered by Linux