0
我有4個語句正在SQLPLus中運行並被假脫機爲文件。SQLPlus反饋返回創建的空行
脫機到這個文件我運行以下命令:
echo "whenever sqlerror exit sql.sqlcode ROLLBACK" > ${sql_tempfile}
echo "set echo off" >> ${sql_tempfile}
echo "set serveroutput on" >> ${sql_tempfile}
echo "set feedback on" >> ${sql_tempfile}
echo "set pagesize 0" >> ${sql_tempfile}
echo "set heading off" >> ${sql_tempfile}
echo "set linesize 80" >> ${sql_tempfile}
echo "set autocommit off" >> ${sql_tempfile}
echo "set exitcommit off" >> ${sql_tempfile}
echo "set sqlprompt \"$DB_NAME SQL>\"" >> ${sql_tempfile}
echo "set sqlnumber on" >> ${sql_tempfile}
echo "set newpage 0" >> ${sql_tempfile}
echo "set echo on" >> ${sql_tempfile}
echo "spool $TMPDIR/$filewoextension.log" >> ${sql_tempfile}
cat ${file} >> ${sql_tempfile}
echo "\n" >> ${sql_tempfile}
echo "spool off" >> ${sql_tempfile}
sqlplus/<<-eoSQL
@${sql_tempfile}
在審查文件,我們可以看到,一些行有「100行更新。」或'100行合併',但在同一個文件中,有一些記錄顯示'創建行'。
我似乎無法找出爲什麼我對某些語句的反饋被返回爲空值。在這個假脫機文件後,我使用一個正則表達式來讀取它,之後出現問題,因爲沒有從單個語句返回的數字。
我試過在開發環境中執行相同的事情,但似乎沒有相同的問題。它只出現在我們的Live環境中,而我們的Oracle DBA無法識別問題。
任何幫助表示讚賞。
感謝,
他們至少可以通過交互式運行腳本來確認行爲嗎?我看不出爲什麼它會產生你所看到的效果,但是'set feedback 1'比'on'更安全。 –
對不起,William,我忘了提及我們已經將$ {sql_tempfile}傳遞給DBA,當他們在環境中運行文件時,他們會得到正確的結果。 –
他們是從同一個目錄下的同一個帳戶運行同一個sqlplus可執行文件,還是隻運行同一個數據庫?我想知道'login.sql'或'glogin.sql'中是否會有一些不同的設置(儘管我想不出來是什麼),如果你只是從TOAD運行它,你不會拿起它,因此我的評論關於「設置反饋1」。 –