[pgsql-jp: 34048] Re: ユーザ定義データ型を引数とした関数をpsql で呼び出す方法について
Tatsuo Ishii
t-ishii @ sra.co.jp
2004年 9月 28日 (火) 22:37:19 JST
石井です.
> ユーザ定義データ型を引数とした関数をpsqlで呼び出す方法を
> ご存知の方がいらっしゃいましたらご教授いただけませんか?
1) Cでinput/output関数をちゃんと作る
2) CREATE TYPEではなく,テーブルを作ってテーブル経由で引数を渡す
3) ユーザ定義データ型を返す関数を作る
1)が一番まともだと思いますが,面倒ならば3)が良いでしょう.例を示します.
CREATE TYPE TP_SAMPLE AS(
AAAA INT4,
BBBB VARCHAR(256)
);
CREATE OR REPLACE FUNCTION FNC_TEST(TP_SAMPLE) RETURNS INT4 AS '
BEGIN
RAISE NOTICE ''AAAA: %'', $1.AAAA;
RAISE NOTICE ''BBBB: %'', $1.BBBB;
RETURN 100;
END;
'LANGUAGE plpgsql;
CREATE OR REPLACE FUNCTION FNC_TEST2(INT4, VARCHAR) RETURNS TP_SAMPLE AS '
SELECT $1,$2;
'LANGUAGE sql;
test=# SELECT fnc_test(fnc_test2(1,'aaa'));
NOTICE: AAAA: 1
NOTICE: BBBB: aaa
fnc_test
----------
100
(1 row)
pgsql-jp メーリングリストの案内