Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Как узнать настоящую ошибку в хранимой процедуре при запуске? / 6 сообщений из 6, страница 1 из 1
22.11.2017, 01:29
    #39557240
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать настоящую ошибку в хранимой процедуре при запуске?
Жила-была ХП типа:
Код: plsql
1.
2.
3.
4.
create or replace mysp(a number, b varchar2) is
begin
   insert into sometable (a, b) values(mysp.a, mysp.b);
end;


Потом некий злодей поменял структуру таблицы sometable и теперь на команду:
Код: plaintext
1.
$dbh->do("execute mysp(1, 'a')");

я получаю
Код: plaintext
1.
DBD::Oracle::db do failed: ORA-00900: invalid SQL statement (DBD ERROR: OCIStmtExecute) [for Statement "execute mysp(1, 'a')"] at mysript.pl


А вот если зайти в SQL Developer и запустит перекомпиляцию процедуры, то уже получаем правильные ошибки (колонка не найдена, тип не совпадает и тд и тп).

Спрашивается, можно-ли при запуске ХП сразу получать кода настоящих ошибок вместо общей ORA-00900? Или настоящие доступны только при перекомпиляции?
...
Рейтинг: 0 / 0
22.11.2017, 01:36
    #39557242
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать настоящую ошибку в хранимой процедуре при запуске?
Обычно Оракул выдаёт целую пачку ошибок. Если перловый драйвер из них способен показать
только первую - ничего не поделать.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
22.11.2017, 02:08
    #39557247
кит северных морей
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать настоящую ошибку в хранимой процедуре при запуске?
call mysp(1, 'a');

?
...
Рейтинг: 0 / 0
22.11.2017, 07:29
    #39557271
Как узнать настоящую ошибку в хранимой процедуре при запуске?
[src]ORA-00900: invalid SQL statement[/quot]Нет у оракла стейтмента execute.
...
Рейтинг: 0 / 0
22.11.2017, 23:01
    #39557924
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать настоящую ошибку в хранимой процедуре при запуске?
кит северных морейcall mysp(1, 'a');

?Использование call выдало: ORA-06575: Package or function mysp is in an invalid state
Однако, когда процедура полностью рабочая, то и execute ее вполне нормально запускает...
Странно это все.

Но я читал эту доку: https://docs.oracle.com/cd/B19306_01/B14251_01/adfns_packages.htm#i1007682
Про call там вообще ничего нету.
...
Рейтинг: 0 / 0
22.11.2017, 23:34
    #39557929
Как узнать настоящую ошибку в хранимой процедуре при запуске?
White OwlПро calla что же там написано про execute?
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Как узнать настоящую ошибку в хранимой процедуре при запуске? / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]