PLSQL命令行参数

时间:2011-03-22 00:07:49

标签: sql oracle plsql oracle10g

我正在使用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 个答案:

答案 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