【Oracle】ストアドプロシージャは外部ファイルにコーディングして登録できます

ムチャクチャ単純なことなんですが、意外と「どうすればいいんだっけ」となってしまうのでメモ。

OraclePL/SQLでストアドプロシージャを登録する時、一番単純な方法としてはsqlplusからゴリゴリ書いていく感じになります。

# > sqlplus hogehoge/hogehoge@hogedb

SQL > CREATE OR REPLACE PROCEDURE echo_nowtime 
  2   IS
  3     now_time DATE;
  4   BEGIN
  5     SELECT CURRENT_DATE INTO INTO now_time FROM DUAL;
  6     DBMS_OUTPUT.PUT_LINE(now_time);
  7   END;
  8   /

  プロシージャが作成されました。


ちょっと複雑になるとコマンドラインから書くのは辛いものがありますよね。
できれば馴染みのエディタを使いたいところ。


そんな時どうするか。
答えはとっても単純。普通のSQL同様「hogehoge.sql」という具合にSQLファイルを作ってしまえばよいのです。

#hogehoge.sql
  CREATE OR REPLACE PROCEDURE echo_nowtime
  IS
    now_time DATE;
  BEGIN
    SELECT CURRENT_DATE INTO now_time FROM DUAL;
    DBMS_OUTPUT.PUT_LINE(now_time);
  END;
  /

で、あとは普通にsqlplusから登録します。

# > sqlplus hogehoge/hogehoge@hogedb

SQL > @hogehoge.sql
  プロシージャが作成されました。


ストアドと言ってもSQL文。
コマンドラインから実行できる構文は全て.sql形式のファイルにまとめて実行できます。

基本中の基本ですが、selectやupdateを単発でばかり使っているととついつい忘れがちになってしまいますね。
(私だけかも)

やさしいOracle PL/SQL入門 (DB Magazine SELECTION)

やさしいOracle PL/SQL入門 (DB Magazine SELECTION)

独習Oracle PL/SQL

独習Oracle PL/SQL