在Oracle / PLSQL中,最大的函数在表达式列表中返回最大值。最大功能的语法是
greatest( expr1, expr2, ... expr_n )).
如何用非限制性参数编写我的函数,如下所示:
myfunction(param1 , param2,...param_n)
答案 0 :(得分:8)
您可以使用表类型作为参数来模拟var args。
create or replace type VARGS as table of varchar2(32767);
然后,您可以将此类型用作函数的最后一个参数:
CREATE OR REPLACE Function FNC_COUNT_WITH_NAMES
( P_NAMES IN VARGS )
RETURN number
IS
RT_COUNT NUMBER;
BEGIN
select count(*) INTO rt_count from employees where name IN
(
select * from TABLE(p_names))
);
return rt_count;
END;
客户端代码会将其命名为:
exec FNC_COUNT_WITH_NAMES (vargs('Brian','Mike','John','David', 'Bob'));
或
select FNC_COUNT_WITH_NAMES (vargs('Brian','Mike','John','David', 'Bob')) from dual;