在ORACLE PL / SQL DEVELOPER中,我能否在SQL Server中轻松完成以下操作?
DECLARE @EmpIDVar INT
SET @EmpIDVar = 1234
SELECT *
FROM Employees
WHERE EmployeeID = @EmpIDVar
这看起来很简单,但在Oracle中似乎无法做到!
我知道使用&在变量前面会提示我输入他们的值,但为什么我不能像上面这样做呢?
答案 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"。