dポイントプレゼントキャンペーン実施中!

RedhatLinuxのシェルスクリプト上で
Oracleのsqlplus操作を行うことは可能でしょうか?
その場合、どのように記述すればよいでしょう?

やりたい内容の例としては以下になります。

#!/bin/sh
su -<oracleユーザー>
sqlplus ※※※※
SQL> update ※※※ set ※※※
SQL> exit

上のような内容をcronに登録して自動処理をかけたいと考えています。

A 回答 (3件)

シェルスクリプトファイル以外のファイルを作成したくない場合はyjousさんのようにヒアドキュメントを使用するのがいいと思います。


もし、sqlを記述したファイルを置いてもかまわないのであれば
sqlplus ユーザ/パスワード @sqlファイル名
をシェルスクリプト内で書けばいいと思います。
(ファイル名はフルパスで。ファイルの最後にexitを忘れずに。)

シェルスクリプト内でsuでoracleユーザにしていますが、それならcronの登録で

0 * * * * su - oracle -c "シェルスクリプトファイル"
のようにoracleユーザにして実行してみたらどうでしょうか?(oracleはoracleユーザーとしてみてください)
    • good
    • 2

TMP='/var/tmp/sql.txt'


echo 'update *** set ***;' > $TMP
echo 'exit' >> $TMP
sqlplus <$TMP ***/***@***
exit
こんなのでいかがでしょうか。
    • good
    • 0

#!/bin/sh


sqlplus id/pass@SID << EOF
update ※※※ set ※※※
exit
EOF

のようなシェルスクリプトで出来たように思います。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す