1

sqlplusコマンドを実行するシェルスクリプト(bash)があり、ターミナル(またはPuTTYやXshellなどのSSHクライアント)から実行すると完全に機能します。つまり、出力を読み取ることができます。ここで、ユーザーがこのスクリプトを開始できるWebインターフェイスを作成しましたが、同じsqlplusが実行されていないように見えるため、実行に失敗します。私が作成した次の簡略化された例を見てください。

テストシェルスクリプト(test.sh):

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

select.sql:

select 'a' from dual;
exit;

端末で生成された出力:

1

'
-
a

2

Webクライアントで生成された出力(これまでのところ、JavaとsshjにGanymed SSH-2を使用しようとしましたが、同じ結果が得られました):

1
2


ご覧のとおり、単純なechoコマンドのみが出力を生成しています。sqlplusの出力はどうなりましたか?何か足りない?

助けてくれてありがとう!

4

1 に答える 1

1

それが誰かを助ける場合:sqlplusは、SSH APIによってアプリケーションサーバーで作成されたセッションのパスになかったため、sqlplusコマンドが見つからず、明らかに標準出力が生成されていません. この問題は、シェル スクリプトで呼び出す前に sqlplus パスをエクスポートすることで解決できます。

于 2013-04-02T19:48:29.833 に答える