首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >处理PostgreSQL %ROWTYPE回报

处理PostgreSQL %ROWTYPE回报
EN

Stack Overflow用户
提问于 2015-02-01 18:03:08
回答 1查看 322关注 0票数 1

我有一个PostgreSQL函数,如下所示:

代码语言:javascript
复制
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”等)

我该如何正确地做这件事?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-01 18:40:01

你得到了很好的综合价值。您必须通过FROM子句解压缩此值。

代码语言:javascript
复制
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)
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28265951

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档