Как передать аргументы в PL/SQL script в командной строке с помощью SQLPLUS?
Как передать аргументы в PL/SQL script в командной строке с помощью SQLPLUS? Я могу назвать свой PL/SQL script таким же, но script требует аргументов, чтобы добиться успеха. Как я могу запустить sqlplus.exe, чтобы передать аргументы script?
@ECHO off
// where HOST030 is a tnsnames alias to a machine, port, and instance
sqlplus.exe MYUSER/[email protected] < refreshDataOnOracle.sql
pause
Я попытался найти ответ, но не смог найти "аргументный пример" для SQLPLUS. Я подозреваю, что это будет аналогичный метод использования команды SQL * Plus "START"?
Ответы
Ответ 1
Во-первых, вам нужно будет вызвать ваш script так:
sqlplus.exe MYUSER/[email protected] @refreshDataOnOracle.sql foo bar
Вместо перенаправления ОС вы будете использовать символ "@" для указания имени файла для выполнения. Вы также укажете параметры script в командной строке. В script вы будете ссылаться на параметры с помощью &1
, &2
и т.д.
update mytable set mycol = '&2' where myid = '&1';
который будет переведен в
update mytable set mycol = 'bar' where myid = 'foo';
Ответ 2
Если вы хотите зарегистрировать запуск sqlplus, вы можете использовать этот синтаксис:
sqlplus.exe MYUSER/[email protected] @refreshDataOnOracle.sql foo bar >> log.log