【发布时间】:2015-02-01 18:03:08
【问题描述】:
我有一个 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",etc.等)"
我该如何正确地做到这一点?
【问题讨论】:
-
请向我们展示您在 Java 代码中使用的
select语句。 -
我不确定我的函数 sql 查询是什么。它是一个标准的多列 SQL 查询,其中 * 作为列选择器和 where 子句中的主键。 Java 代码只调用“选择函数(参数)”,就像普通的 PostgreSQL 一样
-
它确实会影响您调用该函数的方式。
-
好的,抱歉。帕维尔的回答清楚地表明了这一点。
标签: java postgresql jdbc dao plpgsql