我有一个执行sqlplus命令的shell脚本(bash),当我从终端(或者像PuTTY或Xshell这样的SSH客户端)运行它时,它运行得很好,这意味着我可以读取它的输出。现在我创建了一个Web界面,用户可以在其中启动此脚本,但执行失败,因为似乎没有执行相同的sqlplus。看看我创建的以下简化示例:
测试shell脚本(test.sh):
echo 1
sqlplus -s SIEBEL/SIEBEL@SBLQA02 @select.sql
echo 2
select.sql的:
select 'a' from dual;
exit;
在终端中生成的输出:
1
'
-
a
2
在Web客户端上生成的输出(到目前为止,我尝试使用Ganymed SSH-2 for Java和sshj,产生相同的结果):
1
2
如您所见,只有简单的echo命令生成了输出。 sqlplus输出发生了什么?我错过了什么?
提前感谢您的帮助!
答案 0 :(得分:1)
如果有人帮忙:sqlplus不在SSH API的应用服务器创建的会话路径中,所以没有找到sqlplus命令,显然没有生成标准输出。问题可以通过在shell脚本中调用之前导出sqlplus路径来解决。