我想运行一个保存在字符串中的查询,例如:str='select 753 as number'
我尝试过exec sql但是收到了这个错误:
EXEC SQL EXECUTE IMMEDIATE str
我也在postgresql函数中使用它。所以我在字符串中有一个动态查询。如何在可以作为游标返回的字符串中运行查询。像这样:
prepare strg as 'select 7777 as number';
open fcur for execute strg;
可以吗?
答案 0 :(得分:1)
您无法执行返回带有“ EXECUTE IMMEDIATE string ”的行的字符串:
EXECUTE IMMEDIATE立即准备并执行动态指定的SQL语句,而不检索结果行。 (Source)
但是,您可以执行变量托管的命令:
str='Delete * from table01'
EXEC SQL EXECUTE IMMEDIATE :str;
但是你可以使用准备和执行:
prepare str as select 753 as number;
execute str;
要选择光标,首先打开光标,然后选择数据。