在Oracle中定义局部变量的最简单方法是什么?

use*_*234 6 oracle variables plsql

在SQL Server中,我可以像这样定义局部变量.

declare @id number := 1000

select * from tbl_A where id = @id;
select * from tbl_B where id = @id;
Run Code Online (Sandbox Code Playgroud)

这很方便.我尝试做同样的事情,PL/SQL但它不起作用.

DECLARE id number;
select 1000 into id from dual;
Run Code Online (Sandbox Code Playgroud)

你知道怎么做类似的事吗?最简单的方法是我的目标.

Jus*_*ave 9

如果要在PL/SQL中定义局部变量,则需要一个完整的PL/SQL块

DECLARE
  id NUMBER;
BEGIN
  SELECT 1000
    INTO id
    FROM dual;
END;
Run Code Online (Sandbox Code Playgroud)

要不就

DECLARE
  id NUMBER := 1000;
BEGIN
  <<do something that uses the local variable>>
END;
Run Code Online (Sandbox Code Playgroud)

如果要在SQL*Plus中声明变量

SQL> variable id number
SQL> begin
       select 1000 into :id from dual;
     end;
     /

SQL> print id

        ID
----------
      1000

SQL> SELECT * FROM tbl_a WHERE id = :id
Run Code Online (Sandbox Code Playgroud)