Oracle PL SQL 在子查询中声明和使用变量

问题描述 投票:0回答:1

在Oracle PL SQL中,有没有办法在“声明”的子查询中使用变量?由于所有 select 语句都需要“INTO”子句,因此我无法使用该变量执行任何子查询。我所看到的只是人们使用 dbms_output 来打印一行。

例如:

DECLARE
name_variable varchar(20);

BEGIN
  SELECT name
  INTO name_variable 
  FROM employee
  WHERE ID = 1;

  Select * 
  FROM employee 
  WHERE name = name_variable;

END;

我尝试过类似上面的查询并得到类似的结果。

执行上述查询时出现错误消息

也不能使用“DEFINE”,因为我使用的 PL SQL 不支持它。

oracle plsql declare
1个回答
0
投票

尝试:

DECLARE
name_variable varchar(20);

BEGIN
  SELECT name
  INTO name_variable 
  FROM employee
  WHERE ID = 1;

  Select * 
  FROM employee 
  WHERE name = :name_variable;

END;

绑定变量的来源: https://docs.oracle.com/cd/A83908_02/NT816EE/DOC/sqlplus.816/a75664/ch34.htm#:~:text=Bind%20variables%20are%20variables%20you,%20variable%20from% 20SQL*Plus.

© www.soinside.com 2019 - 2024. All rights reserved.