• ベストアンサー

sqlplusの操作をシェル上で

RedhatLinuxのシェルスクリプト上で Oracleのsqlplus操作を行うことは可能でしょうか? その場合、どのように記述すればよいでしょう? やりたい内容の例としては以下になります。 #!/bin/sh su -<oracleユーザー> sqlplus ※※※※ SQL> update ※※※ set ※※※ SQL> exit 上のような内容をcronに登録して自動処理をかけたいと考えています。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

シェルスクリプトファイル以外のファイルを作成したくない場合はyjousさんのようにヒアドキュメントを使用するのがいいと思います。 もし、sqlを記述したファイルを置いてもかまわないのであれば sqlplus ユーザ/パスワード @sqlファイル名 をシェルスクリプト内で書けばいいと思います。 (ファイル名はフルパスで。ファイルの最後にexitを忘れずに。) シェルスクリプト内でsuでoracleユーザにしていますが、それならcronの登録で 0 * * * * su - oracle -c "シェルスクリプトファイル" のようにoracleユーザにして実行してみたらどうでしょうか?(oracleはoracleユーザーとしてみてください)

その他の回答 (2)

  • mebun
  • ベストアンサー率45% (10/22)
回答No.2

TMP='/var/tmp/sql.txt' echo 'update *** set ***;' > $TMP echo 'exit' >> $TMP sqlplus <$TMP ***/***@*** exit こんなのでいかがでしょうか。

  • yjous
  • ベストアンサー率60% (6/10)
回答No.1

#!/bin/sh sqlplus id/pass@SID << EOF update ※※※ set ※※※ exit EOF のようなシェルスクリプトで出来たように思います。

関連するQ&A