2006-08-15から1日間の記事一覧
FOR IN SELECT文やFOR IN EXECUTE文などでループを回しているその中でさらにループを回したいときがある。そういうときにFOR文でエラーが出ることがあるのでカーソルを利用してループを作成するといい。 OPEN cursor FOR SELECT ... or OPEN cursor FOR EXEC…
複数行の問い合わせ結果を扱いたい場合はFOR IN SELECT文やFOR IN EXECUTE文を用いればよい。 FOR record | row IN select_query LOOP statements END LOOP; FOR record | row IN EXECUTE sql LOOP statements END LOOP; statements内で結果を返したい場合は…
ストアドプロシージャの文法は結構簡単。 代入 var := value; 代入は:=で行う。イコールは比較演算子なので注意すること。 文字列 基本的には文字列はシングルクォーテーション2つでくくる。(全体をシングルクォーテーションでくくっているため)ただ、文…
まず通常のSQL文でも用いる型の場合は var_name [CONSTANT] type [NOT NULL] [:= expression]; 定数ならCONSTANTオプション、初期値を設定するなら最後の様にあらかじめ代入をする。次にPL/pgSQLでの型は var_name table.column%TYPE; var_name table%ROWTYP…
ストアドプロシージャ(ストアドファンクション)を作成するときはいったんファイルに作成して、コンソールで % \i 'FILE_PATH'とするのが吉。まず大枠として関数は以下のような形で作成する。OR REPLACEをつけているのは、関数を変更したときにいちいちDROP…