2014-01-15 94 views
0

我們使用CA工作量控制中心(Autosys)來運行它調用其與下面的調用的SQLPlus另一個批處理文件Windows批處理文件:運行腳本後SQLPlus退出嗎?

SQLPLUS用戶名/密碼%1%2%3

由於這一切都是遠程完成,我無法看到服務器上實際發生了什麼。

我想知道如果sqlplus文件存在,但具有無效的語法(如引用不存在的表)將sqlplus提示退出並返回到批處理文件?

我問的原因是因爲我正在查看來自Autosys的日誌文件,它顯示SQLPlus調用已完成,它在第2行打印出錯誤:無效表,但它不顯示任何其他活動批處理腳本之後有多個回聲和文件副本等。看起來好像它不退出SQLPlus也許?

是否有一個parm我需要傳遞給SQLPlus,告訴它退出SQLPlus並在運行SQL腳本後返回調用腳本,如果它失敗了?

編輯:我們使用「每當SQL ERROR」我們的SQL文件的內部以及和日誌文件確實表現出這一點:

Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production 
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP, 
Data Mining and Real Application Testing options 

但我仍然期待它應該繼續休息批處理腳本,但它不是的,上面是最後那個Autosys在日誌中顯示

回答

0

找到了解決辦法SO帖子:

你可以做的sqlplus -l測試/測試@ MyDatabase的@ script.sql; -l標誌表示它只會嘗試連接一次,如果因任何原因失敗將退出而不是提示。查看sqlplus - ?的輸出,或查看documentation

0

見的SQLPlus指令WHENEVER SQLERROR,它描述了甲骨文的文檔:

http://docs.oracle.com/cd/B19306_01/server.102/b14357/ch12052.htm

+0

我會給這看看,謝謝 – Kairan

+0

它看起來像我們當前正在使用的SQL文件「WHENEVER SQL ERROR EXIT 1」 - 我曾嘗試在您提供的「WHENEVER SQLERROR EXIT SQL.SQLCODE」鏈接的變體didn'沒有什麼不同。我將更新我的Q,我應該注意它確實顯示:「與Oracle數據庫11g企業版版本11.2.0.3.0 - 64位生產 斷開連接使用分區,真正應用集羣,自動存儲管理,OLAP, 數據挖掘和實時應用程序測試選項「,所以也許它是一個批處理問題,而不是一個SQLPlus問題? – Kairan