Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/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
Oracle executeimmediate具有executeimmediate属性的pl/sql_Oracle_Plsql_Dynamic Sql - Fatal编程技术网

Oracle executeimmediate具有executeimmediate属性的pl/sql

Oracle executeimmediate具有executeimmediate属性的pl/sql,oracle,plsql,dynamic-sql,Oracle,Plsql,Dynamic Sql,我有一个查询字符串,它已立即执行 如何执行此PL/SQL 查询字符串=“执行立即选择…” 要执行此操作:立即执行“查询字符串” 这就是:executeimmediate“executeimmediate select…” 你知道我怎么做吗?不评论这是正常的还是明智的:是的,我相信你能做到。也就是说,我从未见过任何关于executeimmediate的文章表明它不是可重入者。另外,如果你尝试一下,它也能起作用 下面是一个简单、典型的executeimmediate调用: DECLARE l_c

我有一个查询字符串,它已立即执行

如何执行此PL/SQL

查询字符串=“执行立即选择…”

要执行此操作:
立即执行“查询字符串”

这就是:
executeimmediate“executeimmediate select…”


你知道我怎么做吗?

不评论这是正常的还是明智的:是的,我相信你能做到。也就是说,我从未见过任何关于
executeimmediate
的文章表明它不是可重入者。另外,如果你尝试一下,它也能起作用

下面是一个简单、典型的
executeimmediate
调用:

DECLARE
  l_count NUMBER;
BEGIN
  EXECUTE IMMEDIATE 'SELECT COUNT(*) INTO :l_count FROM DBA_OBJECTS WHERE ROWNUM <= 100' INTO l_count;
  DBMS_OUTPUT.PUT_LINE ('l_count = ' || l_count);
END;

我从来没有遇到过这样做的需要。

没有评论这是正常的还是明智的:是的,我相信你能做到。也就是说,我从未见过任何关于
executeimmediate
的文章表明它不是可重入者。另外,如果你尝试一下,它也能起作用

下面是一个简单、典型的
executeimmediate
调用:

DECLARE
  l_count NUMBER;
BEGIN
  EXECUTE IMMEDIATE 'SELECT COUNT(*) INTO :l_count FROM DBA_OBJECTS WHERE ROWNUM <= 100' INTO l_count;
  DBMS_OUTPUT.PUT_LINE ('l_count = ' || l_count);
END;

我从来没有遇到过这样做的需要。

一个更完整的例子会很有用。您的“查询字符串”缺少内部单引号;这是否存在于变量中?您将如何处理查询结果?一个更完整的示例将非常有用。您的“查询字符串”缺少内部单引号;这是否存在于变量中?您将如何处理查询结果?如果我们有一些参数可能包含1个参数或3个参数,如何使用执行pl/sql?我想这样做:
declare m varchar2(1000):=“SELECT description FROM TB1,其中id=:z';u数:=5;使用“| u | | | | | | | |”将立即“| m | |”执行到:l|u outer|u count中动态构造PL/SQL块来处理绑定变量数量的变化非常有意义。不过,我不确定为什么需要在execute immediate中执行execute immediate。您正在运行时构造代码块。为什么需要在动态构造的字符串中执行动态SQL?如果我们有一些参数可能包含1个参数或3个参数,那么如何使用来执行pl/SQL?我想这样做:
declare m varchar2(1000):=“SELECT description FROM TB1,其中id=:z';u数:=5;使用“| u | | | | | | | |”将立即“| m | |”执行到:l|u outer|u count中动态构造PL/SQL块来处理绑定变量数量的变化非常有意义。不过,我不确定为什么需要在execute immediate中执行execute immediate。您正在运行时构造代码块。为什么需要在动态构造的字符串中执行动态SQL?