SQL

DEFINE

  • このエントリーをはてなブックマークに追加

DEFINEを使うとSQL内の特定文字列を定義した内容に置き換えてからSQLを実行することができます。

DEFINEのメリットはDEFINE定義を変更するだけでSQL自体を変更せずに済むので、保守性が向上するという点にあります。

保守性が向上するというのは重要な点で、仕事で使うSQLは複雑になるケースが多々ありますが、SQLを修正した際の凡ミスが減少するので大切なことです。

DEFINEサンプル1

WHERE句の数値項目の条件をDEFINE定義で置き換える。

-- ここで特定文字列の置換定義をする
DEFINE ID = 1

SELECT
    ID
  , NAME
FROM
    TB_SAMPLE
WHERE
    ID = &ID -- 置換を行う特定文字列は「&」+「特定文字列」の形式で指定する
;

旧   7:     ID = &ID -- 置換を行う特定文字列は「&」+「特定文字列」の形式で指定する
新   7:     ID = 1 -- 置換を行う特定文字列は「&」+「特定文字列」の形式で指定する

        ID NAME
---------- ------------
         1 田中

DEFINEサンプル2

WHERE句の文字列項目の条件をDEFINE定義で置き換える。

文字列項目はDEFINE定義でダブルクォートを使わないとうまく置換できないので注意です。

-- ここで特定文字列の置換定義をする(置換後文字列をダブルクォートで囲むこと)
DEFINE NAME = "田中"

SELECT
    ID
  , NAME
FROM
    TB_SAMPLE
WHERE
    NAME = '&NAME' -- 置換を行う特定文字列は「'」で囲み「&」+「特定文字列」の形式で指定する
;

旧   7:     NAME = '&NAME' -- 置換を行う特定文字列は「'」で囲み「&」+「特定文字列」の形式で指定する
新   7:     NAME = '田中' -- 置換を行う特定文字列は「'」で囲み「&」+「特定文字列」の形式で指定する

        ID NAME
---------- ------------
         1 田中

  • このエントリーをはてなブックマークに追加

コメントを残す

*