如何通过命令行

时间:2016-12-06 07:06:57

标签: windows oracle plsql oracle11g plsqldeveloper

有一个要求,我正在尝试在我的项目中自动化一个进程,在这个进程中需要运行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的日期,我希望自动从参数中选取日期。

你能帮助我实现上述目标吗?

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()方法。