如何从postgresql中的字符串运行查询?

时间:2018-02-07 11:46:55

标签: sql postgresql

我想运行一个保存在字符串中的查询,例如: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;

可以吗?

1 个答案:

答案 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;

要选择光标,首先打开光标,然后选择数据