我正在使用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;
当我从sqlplus调用脚本时,它会出错。不知道我怎么能收到字符串参数。
以下是我尝试的方式:
SQL> @testing.sql 24/02/2011
答案 0 :(得分:2)
非常感谢您的信息。我将run_date用单引号括起来然后就可以了。 从bill_file b中选择*,其中to_char(b.initial_process_date_time,'DD / MM / YYYY')='& run_date';
答案 1 :(得分:1)
您忘记了引号@testing.sql "24/02/2011"
答案 2 :(得分:0)
如果没有你所做的全部,我们不能说。
以下是它的工作原理(在调用中没有引号,但在to_date
中):
file 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