【发布时间】:2013-12-06 18:47:07
【问题描述】:
我有一个如下所示的存储过程:
create or replace
PROCEDURE QueryMultipleValues
(
VALUE_X1 IN VARCHAR2
, VALUE_X2 IN VARCHAR2
) AS
Cursor cur1 is
Select Table1.Value, Table2.OtherValue
From Table1
Join Table2 on Table1.OtherValue = Table2.OtherValue
Where Table2.OtherValue = VALUE_X1 or Table2.OtherValue = VALUE_X2
BEGIN
--display the results
END QueryMultipleValues;
我知道该代码中的名称含糊不清,因此如果有帮助,假设我正在尝试根据用作参数的 ID 号获取名称列表。现在存储过程需要两个,并且正好是两个输入参数。是否可以调整此代码以使其采用可变数量的输入参数?例如,“执行 QueryMultipleValues(123, 456, 789, 999)”还是“执行 QueryMultipleValues(123)”?我想我可以将 WHERE 子句更改为使用 IN 而不是 = ,但我无法弄清楚如何让该过程接受可变数量的 IN 参数。我真的很感激一些帮助。谢谢!
【问题讨论】:
-
您不能接受多个参数,但您可以接受具有多行的表值参数。查看此答案以获取更多信息stackoverflow.com/questions/12712355/…
标签: sql oracle stored-procedures