PostgreSQL-dynamic sql inside function?



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

并且无法更改。

有没有办法实现这一点?

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

OPEN ref_cursor FOR EXECUTE dynamic_sql;
 return ref_cursor;

相关内容

最新更新