Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

ओरेकल 10 जी संग्रहीत प्रक्रिया से परिणाम प्रदर्शित करें

जब आप इस प्रक्रिया को निष्पादित करते हैं या इसे SQLPLUS में चलाते हैं तो क्या आपको कोई त्रुटि दिखाई देती है? क्या आप अपना sqlplus सत्र इस रूप में पोस्ट कर सकते हैं?

PRINT एक sqlplus विशिष्ट कमांड है और इसे प्रक्रियात्मक ब्लॉक के अंदर नहीं कहा जा सकता है। यदि आपको किसी प्रक्रिया के भीतर किसी रिफ़कर्सर के परिणामों को प्रिंट करने की आवश्यकता है, तो आपको उससे प्राप्त करना होगा और प्रत्येक रिकॉर्ड को उस प्रारूप में प्रिंट करना होगा जिसकी आपको आवश्यकता है।

SQL> create or replace procedure test_REFCURSOR (
  2     i_number in number,
  3     o_cursor out sys_refcursor) 
  4  as
  5  begin
  6     open o_cursor for
  7        'select empno, ename from emp
  8             where rownum < ' || i_number ;
  9  end;
 10  /

Procedure created.

SQL> variable rc refcursor;
SQL> exec test_refcursor(5, :rc);

PL/SQL procedure successfully completed.

SQL> print rc;

     EMPNO ENAME
---------- ----------
      7369 SMITH
      7499 ALLEN
      7521 WARD
      7566 JONES

आपको अलग-अलग चर नाम रखने के लिए अपनी प्रक्रिया (या) प्रक्रिया कॉल को भी बदलना चाहिए। सामान्य तौर पर, मैं "i_" के साथ सभी इनपुट चर और "o_" के साथ सभी आउटपुट चर को उपसर्ग करता हूं। इस तरह, आपकी प्रक्रिया घोषणा इस तरह दिखेगी..

CREATE OR REPLACE PROCEDURE IFSINFO.SHORTAGE_SHEET (i_Site     IN VARCHAR2,
                                                    i_Buyer    IN VARCHAR2,
                                                    i_Supplier IN VARCHAR2,
                                                    o_Cursor   OUT SYS_REFCURSOR) AS ....

और प्रक्रिया कॉल होगी..

IFSINFO.SHORTAGE_SHEET(    i_site     => vsite,
                           i_buyer    => vbuyer,
                           i_supplier => vsupplier,
                           o_cursor   => vcursor);

आपको इन चरों के लिए शुरुआत में ":" का उपयोग करने की आवश्यकता नहीं है क्योंकि वे मेजबान पर्यावरण चर नहीं हैं (यह SQLPLUS का उपयोग करके आपके दूसरे निष्पादन का मामला है जहां आप प्रक्रिया कॉल के अंदर sqlplus चर "rc" का उपयोग करते हैं)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एसक्यूएल इन क्लॉज 1000 आइटम सीमा

  2. ऑरैकल में सिंगल सेलेक्ट स्टेटमेंट में एक से अधिक पार्टीशन कैसे शामिल करें?

  3. खाली लेकिन विशाल LOB कॉलम से कैसे छुटकारा पाएं?

  4. डेटाबेस में सकर्मक निर्भरता को हल करने के लिए SQL क्वेरी

  5. डायनामिक टेबल नामों के साथ Oracle डेटाबेस को क्वेरी करना