Конфигурация журнала ошибок sqlcl
Мне нравится настраивать сценарии базы данных Oracle на сбой в случае проблем с базой данных или ОС.
Я думал о переходе на SQLCL, но подход SQL*Plus, который я выбрал для обнаружения и запуска отката для проблем, не связанных с базой данных, терпит неудачу с SQLCL, и я подумал, есть ли у кого-нибудь альтернативное решение (или хороший обходной путь).
Я использую SET ERRORLOGGING
направлять любые SP-ошибки в SPERRORLOG, где я могу их обнаружить перед фиксацией и принять решение об откате / переходе / продолжении / предупреждении и т. д.
Я взял последнюю версию sqlcl (июнь 2016 года, sqlcl-4.2.0.16.175.1027), надеясь решить следующую проблему, но она сохраняется.
При выдаче SET ERRORLOGGING ON
Я получаю следующее:
SQL> SET ERRORLOGGING ON
SP2-0158: unknown SET option beginning "errorloggi..."
Ручная запись, кажется, указывает, что больше ничего для этой опции не изменилось в SQLCL.
SQL> help set errorlogging
SET ERRORLOGGING
ERRORL[OGGING]{ON|OFF}
[TABLE [schema.]tablename] [TRUNCATE] [IDENTIFIER identifier]
Это просто ошибка, или нужно что-то еще, чтобы запустить ERRORLOGGING?
Если это ошибка, есть ли хорошая альтернатива для обнаружения SP(2)- ошибки?
2 ответа
Ну, похоже, несмотря на то, что errorlogging
настройка присутствует среди доступных SQLcl set
в данный момент настройки не поддерживаются.
Бежать show <setting>
Команда, чтобы проверить, поддерживается ли параметр или нет.
./sql -v
SQLcl: Release 4.2.0.16.175.1027 RC
SQL> help set errorlogging
SET ERRORLOGGING
ERRORL[OGGING] {ON|OFF}
[TABLE [schema.]tablename]
[TRUNCATE] [IDENTIFIER identifier]
SQL> show errorlogging
errorlogging Unsupported
Мы получили там. Он поддерживается сейчас и в последней версии OTN или версии Oracle Database.
SQL> conn barry/oracle@localhost:1521/xe
Connected.
SQL> show errorlogging
errorlogging is OFF
SQL> set errorlogging on
SQL> show errorlogging
errorlogging is ON TABLE SPERRORLOG
SQL> select * from NOTATABLE;
Error starting at line : 1 in command -
select * from NOTATABLE
Error at Command Line : 1 Column : 15
Error report -
SQL Error: ORA-00942: table or view does not exist
00942. 00000 - "table or view does not exist"
*Cause:
*Action:
SQL> set sqlformat ansiconsole
SQL> /
USERNAME TIMESTAMP SCRIPT IDENTIFIER MESSAGE
STATEMENT
BARRY 29-AUG-17 12.55.45.000000000 ORA-00942: table
or view does not exist
select * from NOTATABLE