PL/SQL 变量语法混乱

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

我无法理解在 PL/SQL 中传递变量的语法。 我有 2 个变量,startDate 和 endDate,我想从表中填充它们,然后将它们作为参数传递给函数。我可以声明并填充变量,但我似乎无法弄清楚如何传递吸盘。

这一切都发生在 PL/SQL 开发人员的 SQL 查询窗口中。代码最终将存储为临时查询,供其他人加载到 IDE 中并按需运行。

我尝试了以下两种方法,但都因不同的异常而失败。

第一次尝试

DECLARE startDate DATE; endDate DATE;
 
 BEGIN
  SELECT MIN(e.start_date) INTO startDate FROM employees e WHERE e.state = 'NY';
  SELECT MAX(e.end_date) INTO endDate FROM employees e WHERE e.state = 'NY';
  
  SELECT * FROM my_package.my_function(i_start_date => :startDate, i_end_date => :endDate);
 END;

异常:PLS-00428:在此 SELECT 语句中需要一个 INTO 子句

第二次尝试

 DECLARE startDate DATE; endDate DATE;
 
 BEGIN
  SELECT MIN(e.start_date) INTO startDate FROM employees e WHERE e.state = 'NY';
  SELECT MAX(e.end_date) INTO endDate FROM employees e WHERE e.state = 'NY';
 END;
 SELECT * FROM my_package.my_function(i_start_date => :startDate, i_end_date => :endDate);

例外: PLS-00103: 遇到符号“SELECT”

sql oracle plsql oracle19c
© www.soinside.com 2019 - 2024. All rights reserved.