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

Oracle 11g - PL/SQL कर्सर चलाना

कुछ समस्याएं हैं:

  • आपको कर्सर की परिभाषा के बाद एक अर्धविराम की आवश्यकता है (अर्थात, क्वेरी के बाद)।
  • आप bookCursor का उपयोग नहीं कर सकते हैं दोनों कर्सर के नाम के रूप में और आपके द्वारा लाए गए रिकॉर्ड के नाम के रूप में। (मैंने देखा है कि आपका थोड़ा सा कोड bookCursorRec . का उपयोग करता है बाद के लिए, तो मैं उसके साथ जाऊंगा।)
  • fetch में fetch लाने की जरूरत है कुछ, यानी bookCursorRec . में ।
  • dbms_output.put_line पर कॉल करने के बाद आपको एक अर्धविराम चाहिए ।
  • आपकी क्वेरी गलत लगती है; ऐसा लगता है कि दोनों जॉइन क्रॉस-जॉइन हैं।

इसे एक साथ रखना, और स्वरूपण और संरचना को थोड़ा समायोजित करना ताकि यह थोड़ा अधिक "मुहावरेदार" PL/SQL हो:

DECLARE
    CURSOR bookcursor IS
    SELECT btname, isbn, pubname, datedestroyed
      FROM booktitle bt
      JOIN publisher p
        ON bt.pid = p.id -- this is just a guess
      JOIN bookcopy bc
        ON bt.bcid = bc.id -- this is just a guess
     WHERE datedestroyed IS NULL
    ;
    bookcursorrec bookcursor%ROWTYPE;
BEGIN
    OPEN bookcursor;
    LOOP
        FETCH bookcursor INTO bookcursorrec;
        EXIT WHEN bookcursor%NOTFOUND;
        dbms_output.put_line( 'ISBN: ' ||bookcursorrec.isbn
                              || ' - Book Name: ' || bookcursorrec.btname
                              || ' - Publisher: ' || bookcursorrec.pubname );
    END LOOP;
    CLOSE bookcursor;
END;
/

वैसे, Oracle पहचानकर्ता अधिकतर केस-संवेदी होते हैं (जब तक कि आप उन्हें डबल-कोट्स में लपेटते नहीं हैं, तब तक वे अपरकेस में परिवर्तित हो जाते हैं), इसलिए आमतौर पर लोग book_cursor_rec जैसे पहचानकर्ताओं का उपयोग करेंगे। और date_destroyed के बजाय bookCursorRec (=bookcursorrec ) और dateDestroyed (=datedestroyed )।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. सहसंबद्ध उपश्रेणी का उपयोग

  2. Oracle PLSQL में एक सीमांकित सूची के माध्यम से कैसे लूप करें?

  3. दूसरे कॉलम में मेल नहीं खाने वाले डेटा का चयन कैसे करें

  4. TLS प्रमाणपत्र का उपयोग करके Oracle डेटाबेस से JDBC कनेक्शन

  5. ऑरैकल में सीटीई से चर में रिकॉर्ड कैसे सम्मिलित करें?