読者です 読者をやめる 読者になる 読者になる

YAMAGUCHI::weblog

土足で窓から失礼いたします。今日からあなたの息子になります。 当年とって92歳、下町の発明王、エジソンです。

ストアドプロシージャ 文法(基本)

PostgreSQL

ストアドプロシージャの文法は結構簡単。

  • 代入
var := value;

代入は:=で行う。イコールは比較演算子なので注意すること。

  • 文字列

基本的には文字列はシングルクォーテーション2つでくくる。(全体をシングルクォーテーションでくくっているため)ただ、文字列を連結する場合に諸々面倒が起きる。たとえばSQL文でLIKEを使いたいときはこんな具合。

sql := ''SELECT * FROM table WHERE name LIKE ''''%'' || varcahr_val || ''%'''' '';

シングルクォーテーションを重ねた場合の動作はPostgreSQLのリファレンスマニュアルにあるので参照。上の例の場合、最後がシングルクォーテーション6つではなく2つと4つにしているところがミソ。

  • 条件分岐
IF condition THEN
	some-statements
ELSIF condtion THEN
	some-statements
ELSE
	some-statements
END IF
  • ループ
    • 条件なしループ
LOOP
	statements
END LOOP;
    • WHILE
WHILE condition LOOP
	statements
END LOOP;
    • FOR(カウンタ)
FOR counter IN counter_begin..counter_end LOOP
	statements
END LOOP;