2012-02-28 10 views
9

Oracle/PLSQLでは、最大の関数は式のリストで最大値を返します。PL/SQL関数の記述方法は、最大関数に似ています

myfunction(param1 , param2,...param_n) 
+0

+:

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; 

クライアントコードは、とそれを呼ぶだろう1これがPL/SQLに追加されることを望みます:) –

答えて

8

あなたは、パラメータとしてテーブルタイプを使用するvar引数をシミュレートすることができます:最大の関数の構文は

greatest(expr1, expr2, ... expr_n)). 

は、どのように私はこのように無制限にパラメータを指定して、私の関数を書くことができます。

create or replace type VARGS as table of varchar2(32767); 

あなたは、関数の最後のパラメータとして、このタイプを使用することができます。

exec FNC_COUNT_WITH_NAMES (vargs('Brian','Mike','John','David', 'Bob')); 

または

select FNC_COUNT_WITH_NAMES (vargs('Brian','Mike','John','David', 'Bob')) from dual; 
+3

sqlで文字列を使用しているため、文字列を4000文字に制限できます – turbanoff

関連する問題