1

我有一个执行 sqlplus 命令的 shell 脚本 (bash),当我从终端(或 PuTTY 或 Xshell 等 SSH 客户端)运行它时,它运行良好,这意味着我可以读取它的输出。现在我创建了一个 Web 界面,用户可以在其中启动此脚本,但执行失败,因为似乎没有执行相同的 sqlplus。看看我创建的以下简化示例:

测试外壳脚本(test.sh):

echo 1
sqlplus -s SIEBEL/SIEBEL@SBLQA02 @select.sql
echo 2

选择.sql:

select 'a' from dual;
exit;

在终端中生成的输出:

1

'
-
a

2

在 Web 客户端上生成的输出(到目前为止,我尝试将 Ganymed SSH-2 用于 Java 和 sshj,产生相同的结果):

1
2


如您所见,只有简单的 echo 命令生成了输出。sqlplus 输出发生了什么?有什么遗漏吗?

提前感谢您的帮助!

4

1 回答 1

1

万一它对某人有帮助:sqlplus不在SSH API在应用程序服务器中创建的会话的路径中,所以找不到sqlplus命令,显然没有生成标准输出。在调用 shell 脚本之前导出 sqlplus 路径可以解决该问题。

于 2013-04-02T19:48:29.833 回答