क्या ओरेकल एसक्यूएल प्रक्रिया एक टेबल लौटा सकती है? मैं वर्तमान में एक लूप में मौजूद दो कर्सर के आउटपुट प्रिंट करने के लिए dbms_output
का उपयोग कर रहा हूं, हालांकि यह दो कॉलम लौटने पर अच्छा लगेगा। क्या यह एक प्रक्रिया के भीतर संभव होगा?क्या एक एसक्यूएल प्रक्रिया एक टेबल लौटा सकती है?
6
A
उत्तर
8
एक पीएल/एसक्यूएल फ़ंक्शन एक घोंसला वाली तालिका वापस कर सकता है। बशर्ते हम नेस्टेड टेबल को SQL प्रकार के रूप में घोषित करें, हम इसे the TABLE() function का उपयोग करके क्वेरी के स्रोत के रूप में उपयोग कर सकते हैं।
create or replace function get_emp_dets (p_dno in emp.deptno%type)
return emp_dets_nt
is
return_value emp_dets_nt;
begin
select emp_dets(empno, ename, job)
bulk collect into return_value
from emp
where deptno = p_dno;
return return_value;
end;
/
SQL> create or replace type emp_dets as object (
2 empno number,
3 ename varchar2(30),
4 job varchar2(20));
5/
Type created.
SQL> create or replace type emp_dets_nt as table of emp_dets;
2/
Type created.
SQL>
यहाँ एक समारोह जो नेस्टेड तालिका देता है ... ... और यह कैसे है:
यहाँ एक प्रकार, और एक नेस्टेड तालिका यह से बनाया गया है यह काम करता है:
SQL> select *
2 from table(get_emp_dets(10))
3/
EMPNO ENAME JOB
---------- ------------------------------ --------------------
7782 CLARK MANAGER
7839 KING PRESIDENT
7934 MILLER CLERK
SQL>
एसक्यूएल प्रकार हमें कार्यक्षमता का एक बड़ा सौदा प्रदान करते हैं, और हमें पीएल/एसक्यूएल में काफी परिष्कृत एपीआई बनाने की अनुमति देते हैं। Find out more।
0
यह भी मदद मिल सकती है:
DECLARE
TYPE t_emptbl IS TABLE OF scott.emp%rowtype;
v_emptbl t_emptbl;
ret_val t_emptbl;
--
Function getEmployeeList Return t_emptbl
IS
BEGIN
SELECT * bulk collect INTO v_emptbl FROM scott.emp;
-- Print nested table of records:
FOR i IN 1 .. v_emptbl.COUNT LOOP
DBMS_OUTPUT.PUT_LINE (v_emptbl(i).empno);
END LOOP;
RETURN v_emptbl;
END;
--
BEGIN
ret_val:= getEmployeeList;
END;
/
1
मुझे लगता है कि आप (अपने Oracle संस्करण यह समर्थन करता है) इस के लिए Oracle कर्सर का उपयोग कर सकते हैं:
PROCEDURE myprocedure(
mycursor OUT SYS_REFCURSOR)
AS
BEGIN
OPEN mycursor FOR SELECT * FROM mytable;
END;
END;
संबंधित मुद्दे
- 1. एसक्यूएल क्या मेरे पास एक टेबल पर "सशर्त रूप से अद्वितीय" बाधा हो सकती है?
- 2. क्या एक पाइथन कक्षा अपनी कक्षा का एक नया उदाहरण लौटा सकती है?
- 3. कैसे एक pl एसक्यूएल प्रक्रिया
- 4. एक जंप टेबल क्या है?
- 5. लिनक्स पर, क्या प्रक्रिया एक और प्रक्रिया के जीयूआई प्रस्तुत कर सकती है?
- 6. स्टार्टअप के बाद एक प्रक्रिया खुद को बढ़ा सकती है?
- 7. क्या एक कन्स्ट्रक्टर एक उप-क्लास लौटा सकता है?
- 8. क्या एक रननेबल एक मूल्य लौटा सकता है?
- 9. क्या एक गतिशील एसक्यूएल संग्रहीत प्रक्रिया बहुत सारे रिकॉर्ड के लिए एक बुरी चीज है?
- 10. एक ही पंक्ति के साथ एसक्यूएल टेबल?
- 11. संग्रहीत प्रक्रिया कुछ भी नहीं लौटा
- 12. क्या एक .NET प्रक्रिया
- 13. क्या सी # विधि एक विधि वापस कर सकती है?
- 14. क्या बेहतर है - कई छोटी टेबल या एक बड़ी टेबल?
- 15. एसक्यूएल - टेबल
- 16. इसका क्या अर्थ है: "एक बाल प्रक्रिया संभाल प्राप्त कर सकती है"?
- 17. बाएं टेबल में मौजूद एक बाएं बाहरी जॉइन अधिक रिकॉर्ड कैसे लौटा सकता है?
- 18. Can .bat फ़ाइल एक एसक्यूएल क्वेरी निष्पादित कर सकती है और एक मान वापस कर सकती है?
- 19. पायथन - एक डिफ़ॉल्ट मान लौटा रहा है
- 20. एसक्यूएल टेबल
- 21. क्या क्यूटी में टेबल हेडर में मेरे पास एक से अधिक पंक्ति हो सकती है?
- 22. एक संग्रहीत प्रक्रिया
- 23. क्या एक PHP फ़ंक्शन बहुत सारे वर्र्स लौटा सकता है?
- 24. क्या जर्सी अनुरोध एक पॉलिमॉर्फिक इकाई लौटा सकता है?
- 25. क्या सी ++ फ़ंक्शन एक से अधिक मान लौटा सकता है?
- 26. क्या आपके पास लिस्प में हैश टेबल हो सकती है?
- 27. क्या एमएस/ट्रांजैक्ट-एसक्यूएल संग्रहीत प्रक्रिया अपना नाम देख सकती है?
- 28. एसक्यूएल टेबल बी श्रेणी
- 29. एसक्यूएल सर्वर - क्या संग्रहीत प्रक्रिया
- 30. क्या मैं एसक्यूएल संग्रहीत प्रक्रिया
क्या डेटाबेस का उपयोग कर रहे? – Lee
मैं ओरेकल – Jaqualembo
का उपयोग कर रहा हूं आप प्रक्रिया का उपभोग कैसे कर रहे हैं? आप SYS_REFCURSOR डेटा प्रकार के आउट पैरामीटर के माध्यम से एक कर्सर से एक परिणामसेट वापस कर सकते हैं, लेकिन आपके क्लाइंट को परिणाम सेट पढ़ने का समर्थन करने की आवश्यकता है। –