1

我有一个 PostgreSQL 函数,它以一个字符串作为参数/这是动态 sql 查询/并执行该动态 SQL,我期望动态查询的结果。

似乎在 PostgreSQL 中我应该预先定义我将返回的内容 - 但这是不可能的,因为我正在执行动态语句,有时我会返回一个 int 列,有时我会返回 5 个 varchar 列......

另一件事是现有的 jdbc 代码将调用该函数-我无法更改它-我无法动态定义类型,例如:

{call execute_dynamic(?) as (a varchar(255),b int)};

The code that will call the procedure is: 

{call execute_dynamic(?)}

并且无法更改......

有没有办法实现这个?

4

1 回答 1

1

解决方案是使用 refcursor 作为返回类型。

OPEN ref_cursor FOR EXECUTE dynamic_sql;
 return ref_cursor;
于 2013-10-04T12:20:58.393 回答