Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 如何通过命令行将参数传递给sql脚本_Windows_Oracle_Plsql_Oracle11g_Plsqldeveloper - Fatal编程技术网

Windows 如何通过命令行将参数传递给sql脚本

Windows 如何通过命令行将参数传递给sql脚本,windows,oracle,plsql,oracle11g,plsqldeveloper,Windows,Oracle,Plsql,Oracle11g,Plsqldeveloper,在我的项目中,有一个要求,我试图自动化一个过程,在这个过程中,sql需要运行以进行每日报告 sql如下所示:(这是最简单的形式,但我的sql有400行,下面只是一个获得结果的示例) test.sql select * from table where create_date between &date1 and &date2; 我想创建一个bat文件,该文件调用sqlplus并通过命令提示符传递日期。日期将自动计算,并在命令提示符中传递 我尝试了以下命令行: sqlplus u

在我的项目中,有一个要求,我试图自动化一个过程,在这个过程中,sql需要运行以进行每日报告

sql如下所示:(这是最简单的形式,但我的sql有400行,下面只是一个获得结果的示例)

test.sql

select * from table
where create_date between &date1 and &date2;
我想创建一个bat文件,该文件调用sqlplus并通过命令提示符传递日期。日期将自动计算,并在命令提示符中传递

我尝试了以下命令行:

sqlplus userid/password@db_name @test.sql DATE1 DATE2
但这仍然会提示我输入日期1和日期2的日期,我希望自动从参数中提取这些日期


您能帮我实现上述目标吗?

如果您的date1和date2用于给出一天(今天/昨天)的范围,您可以使用SQL的Now()方法。

从命令行传递的参数在SQLPLUS as&1和&2中可用

select * from table
where create_date between &1 and &2;
<> P>为了防止日期格式化的问题,您可能需要考虑将其更改为

select * from table
where create_date between to_date('&1','DD-MM-YYYY') and to_date('&2','DD-MM-YYYY');

或者您想要使用的任何日期格式。

OracleMy bad中不存在方法
Now()
的可能副本。不过,oracle中的当前_DATE函数相当于现在的函数。