• 締切済み

プログラムよりファンクションで結果を取得したい

お世話になります。 vb.net+PostgreSQLでプログラムを作成しております。 接続は「Npgsql.dll」を使用してます。 そこで、プログラムよりファンクションをコールし、 引数で渡した値に一致する結果の取得をしたいのですが、 パターン(2)の様に引数の記述を行うと結果の取得ができません。 どなたか引数で指定した値に一致した結果を取得する方法を お教え頂ければと思います。 【パターン(1)】正常に結果の取得ができた CREATE OR REPLACE FUNCTION pr_select_ok() RETURNS SETOF refcursor AS $BODY$declare cur refcursor; 条件 numeric; begin 条件 := 999; open cur for select 列01, 列02, 列03, 列04 from テーブル where 列01 = 条件 ; return next cur; return; end$BODY$ LANGUAGE 'plpgsql' VOLATILE 【パターン(2)】結果の取得ができない CREATE OR REPLACE FUNCTION pr_select_ok(条件 numeric) RETURNS SETOF refcursor AS $BODY$declare cur refcursor; begin open cur for select 列01, 列02, 列03, 列04 from テーブル where 列01 = 条件 ; return next cur; return; end$BODY$ LANGUAGE 'plpgsql' VOLATILE 以上、よろしくお願い致します。

みんなの回答

  • Dodonpa2
  • ベストアンサー率82% (19/23)
回答No.1

こんにちは。 とりあえず、サーバ側のOSとPostgresのバージョンを お書きください。 クライアントはWindowsですよね。 >パターン(2)の様に引数の記述を行うと結果の取得ができません。 どのようにやってどんなエラーが出てなど、詳細を書かれないと コメントはつきにくいでしょう。 パターン1も2もpsqlとかpgAdminから実行した場合は問題ないのですか? もしそうならパターン2のVBのプログラムが怪しいので見直してみてください。 第一感はNpgsqlParameterの使い方がまずいのでは? http://npgsql.projects.postgresql.org/docs/manual/UserManual.html まずは、ここにサンプルもあるのでご自身で研究してみてください。

pgsql_help
質問者

お礼

アドバイスありがとうございます。 問題は全て解決いたしました。 お騒がせして申し訳ありませんでした。