2016-12-06 210 views
0

有一個要求,我試圖在我的項目中自動執行一個需要運行sql以進行日常報告的過程。 (這是最簡單的形式,但我的sql是400行,下面只是獲得結果的一個示例)。如何通過命令行將參數傳遞給sql腳本

TEST.SQL

select * from table 
where create_date between &date1 and &date2; 

我想創建一個調用sqlplus中並將通過命令prompt.Date會自動計算日期,將在commmmand提示本身傳遞一個bat文件。

我已經試過以下命令行:

sqlplus userid/[email protected]_name @test.sql DATE1 DATE2 

但仍然提示我輸入我想是從參數自動拾取日期1和日期2日期。

請問您能否幫助我實現上述目標?

+0

可能的重複[如何將參數傳遞給SQLPLUS命令行上的PL/SQL腳本?](http://stackoverflow.com/questions/18620893/how-do-i-pass-arguments-to- a-pl-sql-script-on-command-line-with-sqlplus) – Rene

回答

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

如果您的date1和date2用於給出單日(今天/昨天)的範圍,則可以使用SQL的Now()方法。

+0

Oracle中不存在Now()' –

+0

我的不好。儘管如此,您在oracle中的CURRENT_DATE函數等同於NOW。 – xitter

相關問題