繁体   English   中英

Oracle PL / SQL Developer中where子句中的变量

[英]Variables in where clause in Oracle PL/SQL Developer

在ORACLE PL / SQL DEVELOPER中,是否可以像在SQL Server中一样轻松地执行以下操作?

DECLARE @EmpIDVar INT

SET @EmpIDVar = 1234

SELECT *
FROM Employees
WHERE EmployeeID = @EmpIDVar

这看起来很简单,但是在Oracle中似乎是不可能的!

我知道在变量前使用&会提示我输入它们的值,但是为什么我不能做上面的事情?

嗨,在这里你可以看到另一个答案

如何在Oracle PL / SQL where子句中使用变量

 set serveroutput on

 DECLARE 
    EmpIDVar integer; 
    Result integer;

  BEGIN
     EmpIDVar := 2000;


     SELECT Employees_id into Result      
     FROM Employees 
     WHERE Employees_ID = EmpIDVar ;

     dbms_output.Put_line(Result); 
  end;

如果要显示所有(*),则需要显示所有变量,所以就像我说的那样,您需要与字段一样多的varialbes。

声明使用VARIABLE命令

VARIABLE EmpIDVar NUMBER;

像这样使用EXEC设置值

EXEC :EmpIDVar := 1234;

运行带有colon前缀的查询查询

SELECT *
FROM Employees
WHERE EmployeeID = :EmpIDVar;

使用Variable和select with IN子句也许更有用。

VARIABLE EmpIDVar NUMBER
DEFINE EmpIDVar ="123, 124"
EXEC : EmpIDVar := '& EmpIDVar'

SELECT 
  E.*
FROM Employees E
WHERE EmployeeID IN ( & EmpIDVar )

如果不是,只需将IN替换为“ =”,将“ 123,124”替换为“ 123”。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM