Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle 在unix脚本中,SQL脚本输出到一个文件,如果有任何SQL错误,则输出到一个错误文件_Oracle_Unix - Fatal编程技术网

Oracle 在unix脚本中,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

我正在努力做到以下几点

在shell脚本中,调用提取到文件的.sql脚本 如果.sql脚本中出现任何错误,它应该将错误重新定向到错误文件

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;