2012-02-28 13 views
9

ओरेकल/पीएलएसक्यूएल में पैरामीटर है, सबसे बड़ा फ़ंक्शन अभिव्यक्तियों की सूची में सबसे बड़ा मान देता है।पीएल/एसक्यूएल फ़ंक्शन को कैसे लिखना है अधिकतम पैरामीटर

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

+ 1 मेरी इच्छा है कि इसे पीएल/एसक्यूएल में जोड़ा जाएगा :) –

उत्तर

8

आप पैरामीटर के रूप में एक मेज प्रकार का उपयोग वर आर्ग अनुकरण कर सकते हैं: सबसे बड़ा समारोह के लिए वाक्य रचना

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

कैसे मैं इस तरह unlimit पैरामीटर के साथ मेरी समारोह में लिख सकते हैं।

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; 
+3

चूंकि आप एसक्यूएल में एक स्ट्रिंग का उपयोग कर रहे हैं, इसलिए आप स्ट्रिंग को 4000 वर्णों तक सीमित कर सकते हैं – turbanoff