簡體   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