PostgreSQL动态sql里面的函数?

时间:2013-10-03 14:45:38

标签: sql postgresql dynamic-sql

我有一个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(?)}

并且无法更改....

有没有办法实现这个?

1 个答案:

答案 0 :(得分:1)

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

OPEN ref_cursor FOR EXECUTE dynamic_sql;
 return ref_cursor;