• ベストアンサー

Oracleでのスクリプト実行について

SQL*Plusで作成した1つの×××.sqlファイル複数のSQL文があります。このSQLを1つづつ確認しながら実行 する事が可能でしょうか? 例えば、以下の×××.sqlファイルでselect文とinsert文 の間で確認をしたいのですが.....。 select ename from emp; insert into (empno) values(10); よろしくお願いします。

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

  • ベストアンサー
  • tyoufu
  • ベストアンサー率28% (19/67)
回答No.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)
回答No.2

いい解決案かはわかりませんが、 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);

qa119
質問者

お礼

いろいろとご丁寧にありがとうございます。 今、ちょっと試す事はできませんが、今度試してみます。 本当にありがとうございました。

qa119
質問者

補足

tyoufuさん アドバイスを頂き、ありがとうございます。 実際にSQL*Plusで「SET SERVEROUTPUT ON」と入力して、以下の記述がしてある***.sqlを実行したのですが「不明な..DBMS..無視します。」というエラーが出てしまいます。 select ename from emp; DBMS_OUTPUT.PUT_LINE('10'); insert into (empno) values(10); 申し訳ありませんが、アドバイスを頂けると助かります。

  • aton
  • ベストアンサー率47% (160/334)
回答No.1

単に可能か不可能かということであれば,対話型のSQLクライアント(Oracleで何と呼ばれているのかは知りませんが,付属ツールの中に含まれていることは知っています)を使い,別ウィンドウで×××.sqlファイルを見ながら,一行ずつ手入力して実行すればできますが…。 そういうことをお尋ねになっているわけではなく,手入力せずステップ実行するツール等をお探しということでしょうか?

qa119
質問者

お礼

atonさん せっかくアドバイスを頂いたのですが...。 私の質問が悪かったのです。申し訳ありません。 ありがとうございました。

関連するQ&A