如何在postgresql中从字符串运行查询?
我想运行一个保存在字符串中的查询,例如:str='select 753 as number' 我尝试了exec sql,但出现以下错误: execsqlexecuteimmediatestr 我还在postgresql函数中使用它。所以我有一个字符串中的动态查询。如何在可以作为游标返回的字符串中运行查询。大概是这样的:如何在postgresql中从字符串运行查询?,sql,postgresql,Sql,Postgresql,我想运行一个保存在字符串中的查询,例如:str='select 753 as number' 我尝试了exec sql,但出现以下错误: execsqlexecuteimmediatestr 我还在postgresql函数中使用它。所以我有一个字符串中的动态查询。如何在可以作为游标返回的字符串中运行查询。大概是这样的: prepare strg as 'select 7777 as number'; open fcur for execute strg; 可以这样做吗?您不能执
prepare strg as 'select 7777 as number';
open fcur for execute strg;
可以这样做吗?您不能执行返回带有“立即执行”字符串的行的字符串: executeimmediate立即准备并执行动态指定的SQL语句,而不检索结果行 但是,您可以执行变量承载的命令:
str='Delete * from table01'
EXEC SQL EXECUTE IMMEDIATE :str;
但是,您可以使用准备和执行:
prepare str as select 753 as number;
execute str;
要选择进入光标,请先打开光标,然后选择数据进入光标。要帮助人们回答您的问题,您需要更具体地说明错误。请你的帖子中包含你从网站上得到的确切错误,最好使用复制+粘贴来避免转录错误。你使用的是什么环境?什么编程语言?在PL/pgSQL中,您只使用execute:小心SQL注入!在prepare str命令中,我无法从字符串准备sql。另外,您能告诉我如何在函数中返回这个游标吗。我更新了我的问题。