我有一个PostgreSQL函数,如下所示:
CREATE FUNCTION myFunc() returns myTable as $$
DECLARE
my_row myTable%ROWTYPE;
BEGIN
select * into strict my_row where......
return my_row
EXCEPTION
WHEN NO_DATA_FOUND THEN
RAISE EXCEPTION 'Blame the user !'
USING HINT = 'Its always the users fault !';
END;
$$ LANGUAGE plpgsql;问题是,当我在Java中调用它时,我试图从ResultSet (例如rs.getString(1) )获取一个项,而不是获取该列,而是得到整个行表示,即rs.getString(1)生成的字符串如下所示:
"("col1data“、"col2data”等)
我该如何正确地做这件事?
发布于 2015-02-01 18:40:01
你得到了很好的综合价值。您必须通过FROM子句解压缩此值。
CREATE OR REPLACE FUNCTION public.fx()
RETURNS foo LANGUAGE plpgsql
AS $function$
BEGIN
RETURN (SELECT ROW(a,b) FROM foo LIMIT 1);
END;
$function$
postgres=# SELECT * FROM foo;
a | b
----+----
10 | 20
(1 row)
postgres=# SELECT fx(); -- packed composite
fx
---------
(10,20)
(1 row)
postgres=# SELECT * FROM fx(); -- unpacked composite
a | b
----+----
10 | 20
(1 row)https://stackoverflow.com/questions/28265951
复制相似问题