我正在使用SqlPlus運行sql腳本的代碼。大多數腳本中都有DDL,它需要一個/(正斜槓)來運行緩衝區。有些腳本缺少斜槓。我曾嘗試運行腳本(如@ script.sql和/),但它有時會嘗試創建兩次。我還想在最後運行show errors命令,有時如果/缺失,會給我造成麻煩。有沒有辦法確定sqlplus緩衝區是否已經發送到服務器?
所以,我改爲@script。 (期間)顯示錯誤。當/存在於文件中時,這是有效的,但是現在,如果文件中缺少/,如果通過不創建對象而混亂。
我們嘗試了一些邏輯來檢查/在文件中結束,但在我看來這是一個混亂的選項。我有誤報,這不是一個完美的解決方案。
我曾考慮嘗試使用另一種工具來運行,但由於我工作的公司已經發布了這個版本,並且客戶希望它能夠使用sqlplus運行,並且可能包含只能在sqlplus中運行的命令;那不符合JDBC,我認爲這不是一個適當的解決方案。
我現在在想,如果我可以檢查/是否已經在當前的緩衝區上運行,並且只有在沒有的情況下運行,那麼這將是一個很好的解決方案,也許是完美的,但是我找不到任何文檔這樣的命令存在。還有另一種解決問題的方法嗎?這樣的命令是否存在? 謝謝!
這是一個很好的答案,謝謝。我沒有想過如果/那麼缺乏。這真的是一個限制。我感謝你的時間和答覆。 –