Проблемы с Ораклом при работе PHP в командной строке

AZTECA

Новичок
Проблемы с Ораклом при работе PHP в командной строке

Всем привет!

Проблема следующая... Есть, например, код:

PHP:
<?
$ora_db="(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=XXXXXXX)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=XXX)))";
$ora_user="XXXXX";
$ora_pass="XXXXX";

putenv("ORACLE_SID=XXX");
putenv("ORACLE_HOME=/opt/oracle/Ora92");
putenv("NLS_LANG=AMERICAN_AMERICA.CL8MSWIN1251");
putenv("LD_LIBRARY_PATH=/opt/oracle/Ora92/lib");
putenv("ORA_NLS33=/opt/oracle/Ora92/ocommon/nls/admin/data");

$connectionID = OCILogon($ora_user, $ora_pass, $ora_db) or die("Не удалось установить соединение с БД"); 

$J_ID_ATM=1;
$j_name_file="name_file.jrn";
$DATETIME_PREV_JOURNAL="2007-01-01 01:02:03";
$DATETIME_CURR_JOURNAL="2007-01-02 01:02:03";

$s = OCIParse($connectionID, "begin :out := EDIT_FILE_JOURNAL_ATM('$J_ID_ATM', '$j_name_file', '$DATETIME_PREV_JOURNAL', '$DATETIME_CURR_JOURNAL'); end;");
OCIBindByName($s, ":out", $ID_FILE_JOURNAL_ATM, 15);
$ID_FILE_JOURNAL_ATM = NULL;
OCIExecute($s, OCI_DEFAULT);
OCICommit($connectionID);
?>
Этот код нормально работает, если скрипт вызывается Апачем. Однако, если запустить скрипт из командной строки, то выдается ошибка:
Код:
<b>Warning</b>:  ociexecute(): OCIStmtExecute: ORA-06550: line 1, column 7:
PLS-00553: character set name is not recognized
ORA-06550: line 0, column 0:
PL/SQL: Compilation unit analysis terminated
Экспериментально выяснил, что ругается на переменную :eek:ut. Что может быть не так?
 

tony2001

TeaM PHPClub
putenv("ORACLE_SID=XXX");
putenv("ORACLE_HOME=/opt/oracle/Ora92");
putenv("NLS_LANG=AMERICAN_AMERICA.CL8MSWIN1251");
putenv("LD_LIBRARY_PATH=/opt/oracle/Ora92/lib");
putenv("ORA_NLS33=/opt/oracle/Ora92/ocommon/nls/admin/data");
первым делом убери эти вызовы putenv(), и устанавливай эти переменные ДО вызова скрипта.

-~{}~ 06.11.07 16:20:

не помешает также, если ты скажешь что это за OS и назовёшь версии софта.
 

AZTECA

Новичок
Автор оригинала: tony2001
первым делом убери эти вызовы putenv(), и устанавливай эти переменные ДО вызова скрипта.

-~{}~ 06.11.07 16:20:

не помешает также, если ты скажешь что это за OS и назовёшь версии софта.
"ДО вызова скрипта" - это значит в переменные окружения системы?

ОС: LINUX (Red Hat)
PHP Version 4.3.9
 

tony2001

TeaM PHPClub
>"ДО вызова скрипта" - это значит в переменные окружения системы?

да.
Код:
export ORACLE_HOME=/opt/oracle/Ora92
export ORACLE_SID=..
...
php script.php
>PHP Version 4.3.9

ооо..
это надо срочно обновлять.
 

AZTECA

Новичок
Огромное спасибо!

Помогло:
Код:
export ORACLE_SID=XXX
...
...
-~{}~ 07.11.07 09:52:

Автор оригинала: tony2001
>PHP Version 4.3.9

ооо..
это надо срочно обновлять.
А чем плоха версия 4.3.9?
 

tony2001

TeaM PHPClub
>А чем плоха версия 4.3.9?
если в общем, то всем.
с тех пор OCI8 был полностью переписан, не говоря уж про сотни багфиксов в самом PHP.
 
Сверху