YAMAGUCHI::weblog

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

2006-08-15から1日間の記事一覧

ストアドプロシージャ カーソルの利用

FOR IN SELECT文やFOR IN EXECUTE文などでループを回しているその中でさらにループを回したいときがある。そういうときにFOR文でエラーが出ることがあるのでカーソルを利用してループを作成するといい。 OPEN cursor FOR SELECT ... or OPEN cursor FOR EXEC…

ストアドプロシージャ FORループ

複数行の問い合わせ結果を扱いたい場合は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…