在 ORACLE PL/SQL DEVELOPER 中,我能否像在 SQL Server 中那样轻松地执行以下操作?
DECLARE @EmpIDVar INT
SET @EmpIDVar = 1234
SELECT *
FROM Employees
WHERE EmployeeID = @EmpIDVar
这似乎是一件很简单的事情,但在 Oracle 中似乎不可能做到!
我知道在变量前使用 & 会提示我输入它们的值,但为什么我不能像上面那样做呢?
声明使用
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”。
你好这里可以看到另一个答案
如何在 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;
如果你想显示所有(*),你需要显示所有变量,所以就像我说的,你需要和你的字段一样多的变量。