我有一个query.sql看起来像这样的文件:
define start_date = '2020-02-01 00:00:00'
define end_date = '2020-02-20 00:00:00'
select * from customers where created_time between '&start_date' and '&end_date';
当我在 SQL Plus 中执行它时,我得到了一个输入值的提示start_dateand end_date:
SQL> @query
Enter value for start_date:
Enter value for end_date:
为什么?我以为我在脚本中定义了它们?
编辑:是created_timeTIMESTAMP 类型。我尝试将查询更改为:
define start_date = timestamp'2020-02-01 00:00:00'
define end_date = timestamp'2020-02-20 00:00:00'
select * from customers where created_time between &start_date and &end_date;
但是遇到了一个不同的错误:
SQL> @query
old 1: select * from customers where created_time between &start_date and &end_date
new 1: select * from customers where created_time between timestamp'2020-02-01 and timestamp'2020-02-20
select * from customers where created_time between timestamp'2020-02-01 and timestamp'2020-02-20
*
ERROR at line 1:
ORA-01850: hour must be between 0 and 23