有一个要求,我正在尝试在我的项目中自动化一个进程,在这个进程中需要运行sql以进行日常报告。
sql如下所示:(这是最简单的形式但我的sql是400行,下面只是一个获得结果的例子。)
TEST.SQL
select * from table
where create_date between &date1 and &date2;
我想创建一个调用sqlplus的bat文件,并通过命令提示符传递日期。日期将自动计算,并将在commmmand提示符下传递。
我已尝试过以下命令行:
sqlplus userid/password@db_name @test.sql DATE1 DATE2
但是仍然提示我输入日期1和日期2的日期,我希望自动从参数中选取日期。
你能帮助我实现上述目标吗?
答案 0 :(得分:2)
从命令行传递的参数在SQLPLUS中作为& 1和& 2提供。
select * from table
where create_date between &1 and &2;
为防止日期格式问题,您可能需要考虑将其更改为
select * from table
where create_date between to_date('&1','DD-MM-YYYY') and to_date('&2','DD-MM-YYYY');
或者您想要使用的任何日期格式。
答案 1 :(得分:-1)
如果你的date1和date2用于给出单日(今天/昨天)的范围,你可以使用SQL的Now()方法。