• ベストアンサー

SQL*PLUSでファイルからDELETE文

お世話になります、 Oracle8のSQL*PLUSを使用方法についての質問です。 ローカルにファイル(delete.sql)を作成して SQL*PLUSからそのファイルを流してファイルの中身の処理を実行するという方法をご存知の方が いらっしゃったらおしえてください。 --delete.sqlの中身--------- delete from table_a delete from table_b delete from table_c delete from table_d delete from table_e 以下省略 よろしくお願いします。

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

  • ベストアンサー
  • rally
  • ベストアンサー率28% (32/111)
回答No.1

SQL*Plusには、ファイルの内容をリダイレクトで実行する機能があります。 DOSプロンプトから >PLUS80W.EXE system/manager@orcl < delete.sql と入力してください。 ただし、ユーザー名、パスワード、インスタンス名などはそちらの環境に合わせてください。 ちなみに、delete.sqlの最後に、exitと記述しておけば、終了後にSQL*plusを自動的に終了します。 また、delete.sqlの先頭に、spool delete.logとしておけば、実行のログを作成できます。 SQL*Plusの実行ファイル名はOSやOracleのバージョンによって変わりますが、NTのOracle8なら上記のファイル名で大丈夫だと思います。

noname#1752
質問者

お礼

ありがとうございました。 大変勉強になりました。

その他の回答 (1)

  • msystem
  • ベストアンサー率42% (79/186)
回答No.2

rallyさんの回答でほとんど正解なのですが、delete.sqlの各行の最後に「;」が抜けています。また、省略されていますが、「commit;」も入っていないとコミットされません。 あと、sql*plusのプロンプトから、実行する場合は、 @(ファイルのあるパス)delete.sql で、実行できます。

noname#1752
質問者

お礼

ありがとうございました。

関連するQ&A