Naime php skripta na sun serveru okida funkciju na drugom oracle serveru, koji imaju razlicite NLS_LANG postavke, vraca gresku.
Identicna skripta na windowsima i apache web serveru radi normalno sa navedenim oracle serverom, takodjer jos neke funkcije koje se
pozivaju rade i sa sun i sa win platforme. Razlika izmedju tih funkcija je jedino u tome sto ova koja ne radi treba dobiti povratnu vrijednost.
$conn = ocilogon("user","password","sid");
$komand="begin :retvar :=funkcija(...parametri...); end;";
$stmt = OCIParse($conn,$komand);
OCIBindByName($stmt,":ses",$ses,38) ;
OCIExecute($stmt) <--ERROR
OCIFreeStatement($stmt);
OCILogoff($conn);
...
greska koju dobijem je:
Warning: ociexecute(): OCIStmtExecute: ORA-06550: line 1, column 27: PLS-00553: character set name is not recognized ORA-06550: line 0, column 0: PL/SQL: Compilation unit analysis terminated in /disk2/app/bea81/user_projects/domains/gistst/applications/DefaultWebApp/website/ri/pret_odn1/javascript/login.php on line 20
Can not Execute
nls_lang na sun-u je postavljen na:
NLS_LANG=AMERICAN
NLS_CHARACTERSET=EE8ISO8859P2
NLS_NCHAR_CHARACTERSET=EE8ISO8859P2
a na drugom oracle serveru:
NLS_LANG=AMERICAN
NLS_CHARACTERSET=EE8MSWIN1250
NLS_NCHAR_CHARACTERSET=UTF8
Apache na sun serveru ima nls_lang postavljen na:
croatian_croatia.EE8ISO8859P2
Ima li ko kakvu ideju?
Hvala