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

时间:2014-03-05 08:17:01

标签: sql oracle plsqldeveloper

在ORACLE PL / SQL DEVELOPER中,我能否在SQL Server中轻松完成以下操作?

DECLARE @EmpIDVar INT

SET @EmpIDVar = 1234

SELECT *
FROM Employees
WHERE EmployeeID = @EmpIDVar

这看起来很简单,但在Oracle中似乎无法做到!

我知道使用&在变量前面会提示我输入他们的值,但为什么我不能像上面这样做呢?

3 个答案:

答案 0 :(得分:1)

您好,在这里可以看到另一个答案

How to use variables in an Oracle PL/SQL where clause

 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;

如果你想显示你需要的所有(*),以显示所有变量,就像我说你需要尽可能多的变量而不是字段。

答案 1 :(得分:0)

使用VARIABLE命令

声明
VARIABLE EmpIDVar NUMBER;

使用EXEC像这样设置值

EXEC :EmpIDVar := 1234;

运行带有colon

的变量前缀的查询
SELECT *
FROM Employees
WHERE EmployeeID = :EmpIDVar;

答案 2 :(得分:0)

使用Variable并选择IN子句,可能更有用。

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

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

如果没有,简单地用" ="替换IN。和" 123,124"用" 123"。