現在、引数の値を元に下記のようなSQL文を生成しています。
SELECT code, name FROM T_CGY WHERE code = '1111'
UNION
SELECT code, name FROM T_CGY WHERE code = '1110'
UNION
SELECT code, name FROM T_CGY WHERE code = '1100'
UNION
SELECT code, name FROM T_CGY WHERE code = '1000'
ORDER BY code;
※出力されたSQL文に誤りがないかを確認する為にコピーしてターミナル上で実行したら該当するレコードを取得する事ができました。
それをストアドプロシージャ内で生成したSQL文を「QUERY EXECUTE」を実行して該当するレコードが取得できるように改造してみました。
下記が出力された結果です。
getCgyData
--------------------
(1000,洋服)
(1100,子供服)
(1110,ズボン)
(1111,長ズボン)
出力されたデータは私が望んだ内容なんですが・・・
私的には下記のように出力したいと考えています。
col1 | col2
-------------------------
1000 | 洋服
1100 | 子供服
1110 | ズボン
1111 | 長ズボン
何とか上記のように出力できるようにするにはどうしたらいいでしょうしょうか。
そもそも上記のように出力する事は可能なのでしょうか。
CREATE FUNCTION getCgyData (VARCHAR) RETURNS TABLE(col1 VARCHAR, col2 VARCHAR) AS
'
DECLARE
key ALIAS FOR $1;
sql TEXT;
BEGIN
・
・
※ここでSQL文を生成して、変数(sql)に格納しています。
・
・
RETURN QUERY EXECUTE sql;
END;
'
language 'plpgsql'
;
データベースのバージョンはpostgreSQL8.4.9です。
再度、申し訳ありませんがアドバイス、宜しくお願いします。
では、失礼します。
お礼
返信、遅くなってすみません。 ありがとうございます。 お陰さまで私が望む結果を得る事ができました。 本当にありがとうございます。