- ベストアンサー
PL/SQLで@ファイル名が反応しません
はじめまして、PC超初心者なのにOracleを勉強し始めました。 PL/SQLの本を買って見よう見真似でやっているのですが、SQL*PLUSから@<ファイル名>を実行しても何の反応もありません。 SQL>@sample1 としても SQL>@sample1 SQL> と何事もなかったようになります。 本によればエディタに保存したSQL内容が実行されるとあるのですが。。。 ちなみにサンプルエディタをダウンロードして、実行しようとしても全くの無反応です。 どこか根本的な設定がおかしいのでしょうか。。。 どなたかご回答いただけると助かります。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
sample1というファイルはどこのフォルダにありますか? ファイル名にフォルダ名をつけたフルパスで実行してみてください。 たとえばc:\hogeというフォルダにsample1.sqlファイルがあるのであれば SQL>@c:\hoge\sample.sql で実行されます。 コマンドプロンプト版のsqlplusだとsqlplusを実行したフォルダにファイルがあるとフォルダ名を省略したファイル名で実行できます。 画面のsqlplusは・・・どこだったか忘れた(^^; #なんか過去にもこんな質問があったような・・・
その他の回答 (2)
- ossan_hiro
- ベストアンサー率66% (88/132)
k_o_r_o_c_h_a_nさんのおっしゃるとおり、ファイルそのものが見つからないと、エラーが出ますね。失礼しました。 @sample1 を実行する前に set echo on を実行してから@sample1を実行してみてはどうでしょう? ファイルの中身が表示された上でSQLが実行されます。 # ファイルの中身がpl/sqlなら最後の行に"/"が入っていないだけかも・・・ @sample1を実行した後に/を入力するとどうなりますか?
- k_o_r_o_c_h_a_n
- ベストアンサー率55% (526/942)
SQL*PLUSで、ファイルが存在しない場合、 「SP2-0310: ファイル"sample.sql"をオープンできません。」 というエラーになります。 >何事もなかったようになります。 ファイルが存在して、中身がカラだと、そのような挙動をしますが、 そういうことではないですか?
お礼
本のサンプルを丸写ししていたのですが、set serveroutput onを事前にしていないと文字列が出力されないということに気づきませんでした。 SP2-0310エラーですが、 @C:\Documents and Settings\rupin\デスクトップ\sampleと指定すると出ます。 C直下に置いてフルパスを指定すると問題なかったのですが。。。 もう少しドタバタしながら勉強していきます。 ご親切にありがとうございました。
お礼
ossan_hiroさんに教えていただいたとおりにフルパスで指定するとすんなりと動きました。 デスクトップ上に保存していたので、そのまま@sampleで実行してくれると思いこんでいました。。 C直下+フルパスでなんとかなりました。 教えていただいたset echo onも試して併せて動作確認できました。 のっけから躓いてゴロゴロ転がっていましたけど、おかげさまで助かりました。 ご親切に回答していただき、本当にありがとうございました。