2016-05-24 14 views
0

手動で実行すると正しく実行されるシェルスクリプトがあります。しかし、私は、Javaプログラムを通じてシェルスクリプトを実行しますが、シェルプログラムは実行されますが、テーブルは更新されず、エラーもスローされません。以下は、私のシェルスクリプトとjavaプログラムへのリンクの詳細です。
http://www.codesandscripts.com/2014/10/java-program-to-execute-shell-scripts-on-remote-server.htmlJavaプログラムからSQL Plusコマンドを含むシェルスクリプトを実行しています

シェルScript-

echo "started the script execution" 
echo " 
      BEGIN 
       update <<table_name>> set name='abc'; 
       commit; 
      END; 
     /
"| sqlplus -s $MD_DB_USER_NAME/[email protected]$MD_DB_SERVER 
echo "After executing the update statement" 

のJavaプログラムは、そこから私は、シェルザ・スクリプトを呼んでいます。

私はプログラムがデータベースに接続していると思います。誰でもそれが何であるか教えてもらえますか

+2

どのようにシェルスクリプトを呼び出しますか? – Samuel

+0

出力シェルコマンドログをログファイルに出力します。このようにすれば、エラーが何であるか正確に知ることができます。 – shankarsh15

+0

'echo $ MD_DB_USER_NAME/$ MD_DB_SERVER'をスクリプトの先頭に追加して、変数がまったく設定されているかどうかを確認します。そして、スクリプトの出力を確認してください。 Javaで使用するか、またはスクリプトを一時ファイルにリダイレクトするかのいずれかです。 –

答えて

0

上記のお返事ありがとうございます。私の質問に対する私の答えは以下の通りです。

シェルスクリプトを実行する前に、私のDBの詳細などをすべて含んだプロファイルファイルをロードしていました。しかし、私はJavaプログラムを実行していたときに、プロファイルファイルが読み込まれませんでした。ですから、私のシェルスクリプトの1行目では、ソース "profile file path"を追加しなければなりませんでした。今は正しく動作しています。

関連する問題