[pgsql-jp: 34047] ユーザ定義データ型を引数とした関数をpsqlで呼び出す方法について
tomoko sonobe
moomoo @ fsinet.or.jp
2004年 9月 28日 (火) 01:44:32 JST
初めまして。園部と申します。
PL/pgSQLで、ユーザ定義データ型を引数とした関数を作成いたしましたが、
psqlで呼び出す場合の値のセットの仕方が判らず困っています。
ユーザ定義データ型はこのようなつくりです。
CREATE TYPE TP_SAMPLE AS(
AAAA INT4,
BBBB VARCHAR(256)
);
ファンクションはこのようなつくりです。
CREATE OR REPLACE FUNCTION FNC_TEST(TP_SAMPLE) RETURNS INT4 AS '
DECLARE
...
BEGIN
※ここで引数値を使ってinsert文を発行しています(あまり関係なさそう)。
...
RETURN 0;
END;
'LANGUAGE plpgsql;
-------------------
--呼び出し失敗例1
-------------------
SELECT
FNC_TEST(TP)
FROM
TP_SAMPLE TP
WHERE TP.AAAA = CAST(1 AS INT4)
AND TP.BBBB = CAST('TESTTEST' AS VARCHAR);
とすると、
"TP_SAMPLE" is a composite type
というエラーが発生します。
-------------------
--呼び出し失敗例2
-------------------
SELECT FNC_TEST(CAST(1 AS INT4),CAST('TESTTEST' AS VARCHAR));
とすると
No function matches the given name and argument types.
You may need to add explicit type casts.
というエラーが発生します。
ユーザ定義データ型を引数とした関数をpsqlで呼び出す方法を
ご存知の方がいらっしゃいましたらご教授いただけませんか?
宜しくお願いいたします。
--
園部
pgsql-jp メーリングリストの案内