9
在Oracle/PLSQL中,最大函數返回表達式列表中的最大值。爲最大的函數的語法如何編寫PL/SQL函數的參數與最大函數相似
greatest(expr1, expr2, ... expr_n)).
我怎麼能寫我的無限制參數功能如下:
myfunction(param1 , param2,...param_n)
在Oracle/PLSQL中,最大函數返回表達式列表中的最大值。爲最大的函數的語法如何編寫PL/SQL函數的參數與最大函數相似
greatest(expr1, expr2, ... expr_n)).
我怎麼能寫我的無限制參數功能如下:
myfunction(param1 , param2,...param_n)
你可以使用一個表類型作爲參數,模擬變參。
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;
由於您在sql中使用的是字符串,因此可以將該字符串限制爲4000個字符 – turbanoff 2012-02-28 04:57:47
+ 1我希望這將被添加到PL/SQL :) – 2012-02-28 06:35:36