- ベストアンサー
Oracleでのスクリプト実行について
SQL*Plusで作成した1つの×××.sqlファイル複数のSQL文があります。このSQLを1つづつ確認しながら実行 する事が可能でしょうか? 例えば、以下の×××.sqlファイルでselect文とinsert文 の間で確認をしたいのですが.....。 select ename from emp; insert into (empno) values(10); よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
すみません。 質問をprocedure か function だと思ってたのでアドバイスさせてもらったのですが、 直接実行するSQL文のみのファイルだったんですね。 では、次の方法で出力するのもありかと思います。 1. select ename from emp; select 10 as cd from dual; insert into (empno) values(10); 結果は ename -------- CD -------- 10 1行追加されました 2. variable cd number select ename from emp; execute :cd := 10; print cd; insert into (empno) values(10); 結果は ename -------- PL/SQLプロシージャが正常に完了しました。 CD -------- 10 1行追加されました もっといい方法があるかもしれませんが、自分はこれしか思いつきませんでした。
その他の回答 (2)
- tyoufu
- ベストアンサー率28% (19/67)
いい解決案かはわかりませんが、 SQL*Plusで実行する時に画面に出力する命令があるので 自分はよく利用しています。 ***.sqlファイル内に DBMS_OUTPUT.PUT_LINE('出力文字列'); を記述して SET SERVEROUTPUT ON 実行後***.sqlを実行すると指定した文字列が出力されます。 例えば追加する 10 を表示させる場合 select ename from emp; DBMS_OUTPUT.PUT_LINGE('10'); insert into (empno) values(10);
- aton
- ベストアンサー率47% (160/334)
単に可能か不可能かということであれば,対話型のSQLクライアント(Oracleで何と呼ばれているのかは知りませんが,付属ツールの中に含まれていることは知っています)を使い,別ウィンドウで×××.sqlファイルを見ながら,一行ずつ手入力して実行すればできますが…。 そういうことをお尋ねになっているわけではなく,手入力せずステップ実行するツール等をお探しということでしょうか?
お礼
atonさん せっかくアドバイスを頂いたのですが...。 私の質問が悪かったのです。申し訳ありません。 ありがとうございました。
お礼
いろいろとご丁寧にありがとうございます。 今、ちょっと試す事はできませんが、今度試してみます。 本当にありがとうございました。
補足
tyoufuさん アドバイスを頂き、ありがとうございます。 実際にSQL*Plusで「SET SERVEROUTPUT ON」と入力して、以下の記述がしてある***.sqlを実行したのですが「不明な..DBMS..無視します。」というエラーが出てしまいます。 select ename from emp; DBMS_OUTPUT.PUT_LINE('10'); insert into (empno) values(10); 申し訳ありませんが、アドバイスを頂けると助かります。