**关闭。**此题需要debugging details。目前不接受答复。
编辑问题以包含desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem。这将帮助其他人回答这个问题。
昨天关门了。
Improve this question
我在PL/SQL中传递变量的语法方面遇到了麻烦。我有两个变量,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”
1条答案
按热度按时间ojsjcaue1#
您不需要使用PL/SQL,可以在SQL中完成所有操作:
如果你确实想使用PL/SQL,那么你可以使用游标
FOR
循环:或者只是将函数返回的集合赋给一个变量(并跳过SQL查询)。例如,如果函数返回
SYS.ODCINUMBERLIST
类型,则:fiddle
或者,如果您使用的是SQL*Plus或SQL Developer,则可以在脚本中使用绑定变量: