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 田中