में किसी ऑब्जेक्ट प्रकार का उपयोग किसी ऑब्जेक्ट प्रकार का उपयोग करना मेरे पास एक ऐसा फ़ंक्शन है जो 3 ऑब्जेक्ट्स देता है। क्या उस फ़ंक्शन को एक चयनित कथन से कॉल करने का कोई तरीका है और प्रत्येक मान एक अलग कॉलम है? मैं इसे 3 कार्यों में तोड़ सकता हूं, लेकिन मान संबंधित हैं इसलिए मैं इसे प्रदर्शन कारणों से एक के रूप में रखना चाहता था। (तो ओरेकल क्वेरी में प्रत्येक पंक्ति के लिए 3 बहुत समान जटिल कार्य कॉल करने के लिए नहीं है।) के लिएओरेकल
तो:
create type test_obj is object (
a NUMBER,
b NUMBER,
c NUMBER);
create or replace function test_func (
pinput NUMBER)
return test_obj
as
begin
return test_obj(0, 0, 0);
end test_func;
मैं चाहूँगा कुछ चुने हुए बयान से test_func कॉल करने के लिए सक्षम होने के लिए , लेकिन फ़ंक्शन को कई बार कॉल किए बिना, ए, बी, और सी अलग कॉलम हैं। मैं शायद कुछ इस तरह सोचा है, लेकिन यह काम नहीं करता है:
select
iv.col1,
iv.col2,
iv.func_data.a,
iv.func_data.b,
iv.func_data.c
from
(select
mt.col1,
mt.col2,
test_func(mt.input) as func_data
from
my_table mt) iv
वहाँ Oracle 10g में इस तरह कुछ भी करने के लिए एक रास्ता है, या वहाँ इस समस्या को हल करने के लिए एक बेहतर तरीका है?
धन्यवाद! इससे मेरी मदद की। – filiprem
समस्या सिर्फ नाम संकल्प के साथ है। ओरेकल हमेशा SELECT कथन में डॉट से पहले तालिका-उपनाम या डेटाबेस में समानार्थी/पैकेज के रूप में पहले भाग को व्याख्या करता है। यह सभी कॉलम भी नहीं देखता है। तो आपको table_alias.column.attribute के साथ नाम को पूरी तरह अर्हता प्राप्त करनी होगी – Falco