如何在unix文件中捕获sqlplus命令行输出

时间:2013-09-02 04:52:43

标签: sql oracle unix sed awk

我在下面跑:sqlplus ABC_TT/asfddd@\"SADSS.it.uk.hibm.sdkm:1521/UGJG.UK.HIBM.SDKM\" 我正在执行一个存储过程exec HOLD.TRWER 我想在unix文件中捕获上述存储过程的返回码,因为我在unix中运行上面的命令。请建议。

3 个答案:

答案 0 :(得分:3)

我猜您正在寻找spool

SQL> spool output.txt
SQL> select 1 from dual;

1
----------
1

SQL> spool off 

退出后退出。 query / stroed过程输出将存储在名为output.txt

的文件中

答案 1 :(得分:1)

如果return code表示output,则表示:

command > file

如果return code表示exit status,则表示:

command
echo "$?" > file

如果您的意思是其他,请告诉我们。

答案 2 :(得分:0)

您可以将命令返回值存储在变量

value=`command`

然后检查它的值

echo "$value"

对于在shell脚本中执行oracle命令的情况,

value=`sqlplus ABC_TT/asfddd@\"SADSS.it.uk.hibm.sdkm:1521/UGJG.UK.HIBM.SDKM\" \
       exec HOLD.TRWER`

我不确定sql查询,但您可以使用

获取返回的结果
value=`oraclecommand`.

打印oracle命令的返回结果,

 echo "$value"

要检查oracle命令或任何其他命令是否成功执行,只需执行 用$检查?执行命令后的值。成功时返回值为0,失败时返回非零值。

if [ $?=0 ]
then 
 echo "Success"
else
 echo "Failure"
fi