Oracle 在unix脚本中,SQL脚本输出到一个文件,如果有任何SQL错误,则输出到一个错误文件
我正在努力做到以下几点 在shell脚本中,调用提取到文件的.sql脚本 如果.sql脚本中出现任何错误,它应该将错误重新定向到错误文件Oracle 在unix脚本中,SQL脚本输出到一个文件,如果有任何SQL错误,则输出到一个错误文件,oracle,unix,Oracle,Unix,我正在努力做到以下几点 在shell脚本中,调用提取到文件的.sql脚本 如果.sql脚本中出现任何错误,它应该将错误重新定向到错误文件 sqlplus-s$orcl\u user/$ocle\u auth@$db\u orcl>$path/abc.dat; 现在,如何将extract.sql的错误重新定向到名为error.log的文件 谢谢sqlplus-s$orcl\u user/$ocle\u auth@$db\u orcl$path/abc.dat 2>error.log stdout
sqlplus-s$orcl\u user/$ocle\u auth@$db\u orcl<$/path/extract.sql>>$path/abc.dat;
现在,如何将extract.sql的错误重新定向到名为error.log的文件
谢谢
sqlplus-s$orcl\u user/$ocle\u auth@$db\u orcl<$/path/extract.sql 1>$path/abc.dat 2>error.log代码>
stdout(正常程序输出)可以使用1>
或1>
进行重定向以追加,而stderr可以使用2>
或2>
进行重定向以追加。您可以通过使用&>
或&>
进行附加,将两者重定向到单个文件。如果不指定使用
或>
重定向的输出,则默认为标准输出。谢谢,但这并没有将.sql脚本中的错误输出到error.log文件。相反,错误显示在abc.dat文件中。这表明SQL脚本中的错误不是作为stderr从sqlplus
程序传输的,而是stdout。您必须执行一些额外的脚本来捕获变量的标准输出,并测试该变量的内容,以查看它们是否匹配您定义的某种模式,从而确定这是否是错误。这可能超出了所谓的问题的范围。
sqlplus -s $orcl_user/$ocle_auth@$db_orcl < $/path/extract.sql >> $path/abc.dat;