我一直在尋找,並且帖子建議管道echo exit | sqlplus @script.sql
但我的腳本包含PL/SQL語句,需要輸入,所以一旦PROMPT
消息輸出,exit
踢,腳本退出。在SQLPlus中的腳本之後退出?
這裏是linux的通話
alias sql 'sqlplus -s user/pass'
sql @test.sql
腳本執行罰款,確實在DB的INSERT
,但隨後只是等待我去請鍵入exit一旦執行。 任何想法?
我一直在尋找,並且帖子建議管道echo exit | sqlplus @script.sql
但我的腳本包含PL/SQL語句,需要輸入,所以一旦PROMPT
消息輸出,exit
踢,腳本退出。在SQLPlus中的腳本之後退出?
這裏是linux的通話
alias sql 'sqlplus -s user/pass'
sql @test.sql
腳本執行罰款,確實在DB的INSERT
,但隨後只是等待我去請鍵入exit一旦執行。 任何想法?
顯而易見的事情是修改你的腳本在最後有exit
。如果你不能做到這一點,你可以創建一個臨時文件,這樣做,例如:
(cat test.sql && echo exit) > /tmp/test_$$.sql
sql @/tmp/test_$$.sql
rm -f /tmp/test_$$.sql
在文件名中的$$
取代當前進程的ID(PID),所以如果腳本運行兩次同時每個都會得到不同的文件名;然後在最後刪除它。 (您可以首先進行保護性刪除,或者檢查它是否已經存在,以防以前的刪除以某種方式失敗)。
腳本結尾處確實有'exit',但pl/sql無法識別它 – Stefan
在任何PL/SQL(或純SQL)語句之後,出口需要在腳本末尾處正確。如果你的腳本以PL/SQL塊結尾,並且終止'/',那麼退出*在*之後,換行。 –
你不能修改腳本嗎? –