ストアドプロシージャの文法は結構簡単。
- 代入
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;