我有4个语句在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无法识别问题。
感谢任何帮助。
谢谢,
答案 0 :(得分:0)
事实证明,在导致这种差异的一个配置文件中,LD_LIBRARY_PATH被设置为10.2而不是11.2。
编辑变量以设置为当前的oracle版本似乎可以解决问题。