[pgsql-jp: 39931] PL/pgSQLでのプロシジャ実装について

takayuki-maruyama @ nova-system.com takayuki-maruyama @ nova-system.com
2009年 7月 18日 (土) 22:16:12 JST


いつもお世話になります。丸山と申します。

表記の件、下記の条件でPL/pgSQLでの実装が可能か、実装可能な場合は具体的な
方法etc.を調査しているのですが、今ひとつ情報が少ないため、判断に困ってお
ります。
もしこれまでに同様の経験をお持ちの方がおられましたら、アドバイスいただけ
れば幸いです。


<環境>
・DBサーバー :PostgreSQL8.3.3(FedoraCore7)
・Webサーバー:PHP5.2.6+Apache2.0.x
現状、Webサーバー上のPHPプログラムから、DBサーバーのDBにSQLを投げる
→実行結果をWebサーバーで表示しています

<やりたいこと>
現在PHPプログラムで投げているSQLを、PL/pgSQLのプロシジャで実装
PHPプログラムは、プロシジャのキック+結果表示のみを実行

<制約>
・実行結果は結果集合(複数行)で受け取りたい
・検索項目(複数)をパラメータとして渡し、値が設定されている項目を
 キーにして入力内容でデータを検索する
 ※ロジックが煩雑になるので、プロシジャ内で動的SQLを組立&実行する
  方向で試しています

<現状>
ネット上の情報を参考にいろいろ試しているのですが、まともな出力結果1つ得
られていません。
もしかして、実装自体不可能なのでは?とも思っています....
○RETURNS SETOF RECORDを指定+動的SQLをEXECUTEで実行後RETURN NEXTを指定
 →値が何も返らない
○RETURNS SETOF RECORDを指定+RETURN QUERYで動的SQLを指定
 →コンパイルエラー
etc.


それでは、よろしくお願いいたします。



pgsql-jp メーリングリストの案内