Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在postgresql中从字符串运行查询?_Sql_Postgresql - Fatal编程技术网

如何在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; 可以这样做吗?您不能执

我想运行一个保存在字符串中的查询,例如:str='select 753 as number'

我尝试了exec sql,但出现以下错误:

execsqlexecuteimmediatestr

我还在postgresql函数中使用它。所以我有一个字符串中的动态查询。如何在可以作为游标返回的字符串中运行查询。大概是这样的:

    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。另外,您能告诉我如何在函数中返回这个游标吗。我更新了我的问题。