use*_*017 6 windows oracle plsql oracle11g plsqldeveloper
有一个要求,我试图在我的项目中自动化一个流程,其中需要运行 sql 来进行日常报告。
sql 如下所示:(这是最简单的形式,但我的 sql 有 400 行,下面只是获取结果的示例)。
测试.sql
select * from table
where create_date between &date1 and &date2;
Run Code Online (Sandbox Code Playgroud)
我想创建一个调用 sqlplus 并通过命令提示符传递日期的 bat 文件。日期将自动计算,并将在命令提示符本身中传递。
我尝试过以下命令行:
sqlplus userid/password@db_name @test.sql DATE1 DATE2
Run Code Online (Sandbox Code Playgroud)
但这仍然提示我输入日期 1 和日期 2 的日期,我希望自动从参数中获取这些日期。
您能帮我实现上述目标吗?
从命令行传递的参数在 SQLPLUS 中可用为 &1 和 &2。
select * from table
where create_date between &1 and &2;
Run Code Online (Sandbox Code Playgroud)
为了防止日期格式出现问题,您可能需要考虑将其更改为
select * from table
where create_date between to_date('&1','DD-MM-YYYY') and to_date('&2','DD-MM-YYYY');
Run Code Online (Sandbox Code Playgroud)
或者您想使用的任何日期格式。
| 归档时间: |
|
| 查看次数: |
18738 次 |
| 最近记录: |