Параметры командной строки PLSQL - PullRequest
0 голосов
/ 22 марта 2011

У меня есть программа testing.sql. В первой строке списка я получаю аргумент командной строки с define run_date = '&1' и использую его в курсоре.

Аргумент. Я хочу использовать его как строку '24/02/2011' и использую его для сравнения в SQL-запросах и курсорах.

Select * 
  from bill_file b 
 where to_char(b.initial_process_date_time,'DD/MM/YYYY')=&run_date;

Когда я вызываю скрипт из , он выдает ошибки. Не уверен, как я могу получить строковые аргументы.

Вот как я пытался:

SQL> @testing.sql 24/02/2011

Ответы [ 3 ]

2 голосов
/ 22 марта 2011

Большое спасибо за информацию. Я заключил run_date в одинарные кавычки, и это сработало. Выберите * из bill_file b, где to_char (b.initial_process_date_time, 'DD / MM / YYYY') = '& run_date';

1 голос
/ 22 марта 2011

Вы забыли цитаты @testing.sql "24/02/2011"

0 голосов
/ 21 июня 2016

Без всего того, что вы сделали, мы не можем сказать.

Вот как это просто работает (без кавычек в вызове, но в to_date):

файл c.sql

define run_date='&1';
select to_date('&run_date', 'DD/MM/YYYY') from dual;

Тогда звонок:

SQL> @c.sql 24/02/2011
old   1: select to_date('&run_date', 'DD/MM/YYYY') from dual
new   1: select to_date('24/02/2011', 'DD/MM/YYYY') from dual
24/02/2011
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...