我有一个将一个字符串作为参数的 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;
关于sql - PostgreSQL-动态sql内部函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19162226/