Oracle11g 在Oracle中,SQL Server与EXECUTE IMMEDIATE INTO的等效功能是什么

Oracle11g 在Oracle中,SQL Server与EXECUTE IMMEDIATE INTO的等效功能是什么,oracle11g,sql-server-2012,dynamic-sql,Oracle11g,Sql Server 2012,Dynamic Sql,在Oracle中,SQL Server与“立即执行到”的等价物是什么 例如 executeimmediate的T-SQL等价物是动态SQL DECLARE @intCount int EXECUTE sp_executesql N'select @intCount=count(*) from product', N'@intCount int output', @intCount output; Print(@intCount) 或者,您可以使用 DECLARE @intCount2 int

在Oracle中,SQL Server与“立即执行到”的等价物是什么

例如


executeimmediate的T-SQL等价物是动态SQL

DECLARE @intCount int
EXECUTE sp_executesql N'select @intCount=count(*) from product', N'@intCount int output', @intCount output;
Print(@intCount)
或者,您可以使用

DECLARE @intCount2 int
SELECT @intCount2 = count(*) from product

不能将标量变量设置为动态查询的结果,但可以将结果插入到表变量中。这很有效

DECLARE @tbl TABLE (RowCnt INT NULL);

DECLARE
   @QRY varchar(100);

BEGIN

  SET @QRY = 'select <Aggregate Function> from tableName'; --Builds the dynamic query

  INSERT @tbl
    (
      RowCnt
    )
  EXECUTE(@QRY); --Executes the query

  SELECT 
    * 
  FROM @tbl;

END;
DECLARE@tbl表(RowCnt INT NULL);
声明
@QRY-varchar(100);
开始
SET@QRY='select from tableName'--构建动态查询
插入@tbl
(
RowCnt
)
执行(@QRY)--执行查询
挑选
* 
来自@tbl;
结束;

您没有存储返回的总行数的值。这就是我的目的和EXECUTE IMMEDIATE Into的目的。我想要一种存储select语句返回的总行数值的方法。您不是在动态执行它。我希望动态执行它,并将其值存储在变量中。请选择其他选项,如表中给定列的总和,并将其存储在变量中。我需要一种方法来存储select语句返回的总行数值。我的目的是将动态查询返回的值存储到给定变量中。我刚才打了个比方,希望你能迅速理解。请在这方面帮助我。比方说,我想将给定列的和的值存储到一个变量中,以代替总行数。那么我的代码应该是什么呢。只需替换如下查询:QRY:=从生产中选择总和(数量)。产品谢谢先生。你帮了大忙。这一切都是有效的,我已经验证了我的回答非常好!我很高兴能帮上忙。
DECLARE @tbl TABLE (RowCnt INT NULL);

DECLARE
   @QRY varchar(100);

BEGIN

  SET @QRY = 'select <Aggregate Function> from tableName'; --Builds the dynamic query

  INSERT @tbl
    (
      RowCnt
    )
  EXECUTE(@QRY); --Executes the query

  SELECT 
    * 
  FROM @tbl;

END;