Я хотел бы запустить сценарий Oracle через SQL Plus через командную строку Windows. Сценарий не содержит команду «выход», но я все же хотел бы завершить работу SQL Plus, возвращая управление в командную строку по завершении сценария. Моя цель - сделать это без изменения скрипта. Это возможно?
114
Ответы:
Другой способ - использовать эту команду в командном файле:
источник
Я нашел, что это лучшее решение, и оно работает в терминале или в скрипте:
источник
Теперь, понимая, что ваша проблема может быть связана с самим файлом sql, вы должны понять, что для завершения работы sqlplus нужно указать. Я делаю это так:
(Косая черта важна. Она указывает sqlplus выполнить метки состояния над ней.)
источник
Лучший способ скрыть информацию о пользователях и выходах:
exit
выдается на выход sqlplus, заставляя его выйти.-S
подавляет весь вывод сервера, кроме SQL-запроса в скрипте.источник
Вы также можете сделать это в вашем сценарии оболочки.
Вам может понадобиться убежать от ";" с \.
источник
Да, это возможно - сгенерировать скрипт-обертку, который соответствующим образом настраивает SQLPlus, включает ваш скрипт (т.е.
@YourTargetScript.sql
), а затем выполняет выход.Тем не менее, я не рекомендую этот подход вообще - у SQLPlus есть очень много проблем для программного использования; при написании сценариев оболочки в прошлом, которые использовали Oracle, я построил оболочку Python вокруг нее (добавив более разумное поведение при обработке ошибок, разумное разделение вывода между stdout / stderr, встроенную поддержку вывода CSV и другие подобные вкусности), и это сработало намного лучше.
источник
Нравится:
Если вы поместите это в пакетный файл, контроль продолжится с оператором (ами), следующим за ним.
РЕДАКТИРОВАТЬ: мой плохой, попробуйте еще раз с / Nolog флаг
источник
Для тех, кто обеспокоен безопасностью включения вашего пароля в скрипт, в AskTom есть статья о «внешне идентифицированном» http: //asktom.oracle.com/pls/apex/f? P = 100: 11: 0 :::: P11_QUESTION_ID: 142212348066
источник
В вашем скрипте SQL добавьте EXIT. Вот пример моего файла test.bat имеет следующее:
sqlplus user / pwd @ server @ test.SQL> myLOG.LOG
Мой файл test.sql имеет следующее: select * from dual; Выход
источник
выход | SQLPLUS / @ @
Это правильное решение, я пытался это работает
источник