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”。 –