कृपया निम्नलिखित स्क्रिप्ट पर विचार करें:
create or replace function f(p_limit in integer) return integer as
begin
set_global_context ('limit', p_limit);
return p_limit;
end;
/
create view v as
select level as val from dual connect by level<=sys_context('global_context','limit');
select f(2), v.* from v;
/*
F(2) VAL
---------------------- ----------------------
2 1
2 2
*/
select f(4), v.* from v;
/*
F(4) VAL
---------------------- ----------------------
4 1
4 2
4 3
4 4
*/
क्या मैं f(x)
संदर्भ के अंदर दृश्य को पढ़ने से पहले निष्पादित होने पर भरोसा कर सकता हूं , जैसा कि 10.2 पर चलाए गए इस परीक्षण मामले में है?
SELECT stuff FROM dbo.FuncReturningTable(param)
या इसी तरह का हो सकता है। Oracle में संभवतः समान कार्यक्षमता है। हालांकि अगर बड़े डेटा सेट का उपयोग करने पर मुझे प्रदर्शन पर नज़र रखने में सावधानी होगी: मुझे यकीन नहीं है कि इस तरह के सिंटैक्स से एक कुशल योजना बनाने के लिए क्वेरी प्लानर को कितना उज्ज्वल होना होगा।