YAMAGUCHI::weblog

海水パンツとゴーグルで、巨万の富を築きました。カリブの怪物、フリーアルバイター瞳です。

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

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

  • 代入
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;