Создание пакета Оракл из пхп-скрипта

ek-na

Новичок
Создание пакета Оракл из пхп-скрипта

Есть верный!!!! (проверен в девелопере) запрос для создания пакета в оракле

>>>> create or replace package mx_utl_pkg is.....

Запускаю из пхп

PHP:
........................
$sub_query =file_get_contents($dir_name.'/'.$file); 
$sub_query = trim($sub_query, " \0\n\r/\\");
$stmt = OCIParse($connect, $sub_query[$i]);
ociexecute($stmt);
вылетает с ошибкой: Warning: ociexecute(): OCIStmtExecute: OCI_SUCCESS_WITH_INFO: ORA-24344: success with compilation error in D:\home\uvz\root\index.php on line 127

Сам оракл пишет:
Error: PLS-00103: Encountered the symbol "" when expecting one of the following:

end function package pragma private procedure subtype type
use <an identifier> <a double-quoted delimited-identifier>
form current cursor
Line: 1
Text: create or replace package mx_utl_pkg is

Че к чему никто понять не может

:confused:
 

tony2001

TeaM PHPClub
>Че к чему никто понять не может
да уж, из таких рассказов поди пойми.
в SQLPlus тестируй запросы, а не во всяких хитрожелтых девелоперах.
 

ek-na

Новичок
ну не знаю, по-моему очень обстоятельно объяснила, нечего сказать - лучше вообще ничего не пишите, а запрос верный!!!
Подозреваю, что дело тут в каких нибудь управляющих символах, об которые Оракл спотыкается, пойду думать в этом направлении
 

tony2001

TeaM PHPClub
>$sub_query = trim($sub_query, " \0\n\r/\\");
совершенно неясно зачем тестировать один запрос, а выполнять в PHP другой.
 

ek-na

Новичок
Как бы это объяснить..
Во-первых, пакет создается, но с ошибками компиляции, когда я делаю просто рекомпайл, он компилируется нормально, хотя в тексте я ничего не меняла!!!
Во-вторых, в моей программе, текст запроса пишется в лог-файл уже после того как над ним поиздевались (то есть функция trim), и я могу протестировать именно этот запрос и он выполнится!!!!

-~{}~ 03.07.06 15:02:

Все отбой, нашли в чем проблема, так и есть управляющие символы во всем виноваты, предже, чем передать подготавливать запрос на выполнение, нужно убрать ВСЕ символы "/r" из запроса, почему то Оракл их не любит.
PHP:
$stmt = str_replace("\r", '', $stmt);
И все прекрасно работает!!!!
 
Сверху