我无法理解在 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”