使用Java SSH API时sqlplus缺少输出

时间:2013-03-12 14:23:20

标签: java bash ssh sshj

我有一个执行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输出发生了什么?我错过了什么?

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

如果有人帮忙:sqlplus不在SSH API的应用服务器创建的会话路径中,所以没有找到sqlplus命令,显然没有生成标准输出。问题可以通过在shell脚本中调用之前导出sqlplus路径来解决。