• ベストアンサー

pgAdminIII RAISEの結果取得について

前回の質問を間違えて、解決済にしてしまいました。 前回の質問番号はQNo.7135032です。 改めて質問させて頂きます。 下記ファンクションにて実行してみたのですが、うまくいきません。 CREATE OR REPLACE FUNCTION raise_test(in i_data_num numeric, out o_data_num numeric, out o_data_char character varying) RETURNS integer AS 度重なる質問で、誠に申し訳ございませんが、手法をご教授ください。 よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • gacky-79
  • ベストアンサー率100% (14/14)
回答No.1

OUTパラメータとRETURNS integerは同時には使えないと思いますが、 以下のような呼び出し方ではいかがでしょう? OUTパラメータを除いた「IN, INOUT引数だけを持つ関数」として呼び出すのがポイントです。 CREATE OR REPLACE FUNCTION raise_test(in i_data_num numeric, out o_data_num numeric, out o_data_char character varying) /*RETURNS integer*/ AS $$ BEGIN o_data_num := i_data_num + 100; o_data_char := 'XYZ'; END; $$ LANGUAGE plpgsql; DO $$ DECLARE data_num numeric; data_char character varying; BEGIN SELECT * INTO data_num, data_char FROM raise_test(5); RAISE INFO '% / %', data_num, data_char; END; $$; 結果 → INFO: 105 / XYZ

stagea260
質問者

お礼

お礼が遅れまして、申し訳ございませんでした。 確認取れました。 コンパイルでは、ちゃんと通ったので出来ると思っておりました。 実際は出来ないんですね。 度重なる質問に対し、全て回答して頂き誠に有難う御座います。 また機会が御座いましたら、宜しくお願い致します。

関連するQ&A