在oracle中使用CTE内的变量时遇到错误。

问题描述 投票:0回答:1

我想在Oracle SQL developer中编写下面的SQL查询(在sql server中使用)。

DECLARE @myVAR int;
SET @myVAR = 11;
WITH myCTE
AS (SELECT * FROM abc WHERE HostCount = @myVAR)
SELECT * FROM myCTE
oracle variables plsql oracle-sqldeveloper sqlplus
1个回答
1
投票

对于你的情况。

  • DECLAREINT 关键字可能会被替换为 VARNUMBER,分别

  • 变量 myVAR 有以下条件 : 而不是 @,赋值运算符(:=)代替等号(=)和嵌套在 BEGINEND 关键字。

  • 命令行中的语句应以 ; 然后 / .

编码。

SQL> VAR myVAR NUMBER;
SQL> BEGIN :myVAR := 11; END; 
  2  /

PL/SQL procedure successfully completed
myVAR
---------
11

SQL> WITH myCTE
  2  AS (SELECT * FROM abc WHERE HostCount = :myVAR)
  3  SELECT * FROM myCTE;
  4  /

ID    COL1   HOSTCOUNT
---- ------ ----------
..     ...          11
..     ...          11

myVAR
---------
11
© www.soinside.com 2019 - 2024. All rights reserved.