見出し画像

SQL Developer - PL/SQL - 最初の1歩

ずいぶん前になりますが、触ったことはあります。Pascalっぽいと思った記憶があります。

環境
SQL Developer:バージョン21.2.1.204

やりたいこと
SQL DeveloperでPL/SQLを作成して実行してみたい。
まずは、Hello World的な事をやってみたい。

このペインに「パッケージ」、「プロシージャ」、「ファンクション」とありどれもPL/SQLっぽいのですが、まずは「プロシージャ」で作成してみます。

新規プロシージャ

プロシージャといっても引数を指定できる?っぽいです。記憶違いですかね。引数指定する場合はファンクションだと思っていました。VBA、VBと勘違いしているのかなぁ

プロシージャの作成

まずは、引数なしでいいので「OK」ボタンをクリックします。

SQL Developer

テンプレートが出来ています。
ここに打ち込んでいけばいいのですが…PL/SQLのプリント文って何?

以下がPL/SQLのプリント文らしいです。

DBMS_OUTPUT.PUT_LINE('Hello PL/SQL');

これを打ち込み、実行してみます。

SQL Developer

実行は、緑の再生アイコンをクリックします。PL/SQLにエラーがあるときは押せないようになっている?気がします。

CREATE OR REPLACE PROCEDURE PROCEDURE1 AS 
BEGIN
  BEGIN
    DBMS_OUTPUT.PUT_LINE('Hello PL/SQL');
  END;
END PROCEDURE1;

ちょこっとだけ

FOR文は
以下のようなイメージです。

CREATE OR REPLACE PROCEDURE PROCEDURE1 AS 
BEGIN
  BEGIN
    FOR i IN 1..5 LOOP
      DBMS_OUTPUT.PUT_LINE('Hello PL/SQL');
    END LOOP;
  END;
END PROCEDURE1;

変数、定数、文字列連結(||)は
以下のようなイメージです。

CREATE OR REPLACE PROCEDURE PROCEDURE1 AS 
BEGIN
  DECLARE
    valA NUMBER := 101;
    valB CONSTANT NUMBER := 102; -- 定数定義
    valC CONSTANT VARCHAR(20) := 'Hello PL/SQL';
  BEGIN
    DBMS_OUTPUT.PUT_LINE('valA=' || valA);
    valA := 200;
    DBMS_OUTPUT.PUT_LINE(valA);
    DBMS_OUTPUT.PUT_LINE(valC);
  END;
END PROCEDURE1;

この記事が気に入ったらサポートをしてみませんか?