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

बल्क कलेक्ट का उपयोग करके दूरस्थ डेटाबेस (dblink) में बल्क रिकॉर्ड सम्मिलित करें

त्रुटि संदेश काफी स्पष्ट लगता है:

वास्तव में आप किसी अन्य प्रश्न से लिंक करते हैं जो बताता है कि यह एक कार्यान्वयन प्रतिबंध है। PL/SQL हमें डेटाबेस लिंक पर FORALL स्टेटमेंट का उपयोग करने की अनुमति नहीं देता है और वह यह है।

सौभाग्य से आपको अपने कोड में बल्क कलेक्ट और FORALL का उपयोग करने की आवश्यकता नहीं है। एक साधारण INSERT INTO .... चयन कथन आपको सही देखना चाहिए:

INSERT INTO [email protected] 
    SELECT A.PARTY_SITE_NUMBER FMAT_FMATID, B.ZADDRESSFMATID F4F_FMATID,
    C.ADDRESS1 FMAT_VALUE, B.STREET F4F_VALUE , 'ADDRESS1' 
    FROM [email protected] A , f4f_corporateaccount B , [email protected] C
    WHERE 1=1
    AND B.ROLECODETEXT = 'Site Account'
    AND A.PARTY_SITE_NUMBER = B.ZADDRESSFMATID
    AND A.STATUS = 'A'

    UNION ALL 
    ------------------------------------------------------Address2-----------------------------------------------------------------------------

    SELECT A.PARTY_SITE_NUMBER FMAT_FMATID, B.ZADDRESSFMATID F4F_FMATID,
    C.ADDRESS2 FMAT_VALUE, B.addressline1 F4F_VALUE , 'ADDRESS2'  
    FROM [email protected] A , f4f_corporateaccount B , [email protected] C
    WHERE 1=1
    AND B.ROLECODETEXT = 'Site Account'
    AND A.PARTY_SITE_NUMBER = B.ZADDRESSFMATID
    AND A.STATUS = 'A'

आपका कोड स्पष्ट ANSI 92 सिंटैक्स का उपयोग नहीं करता है और आपने कोड को छान लिया है इसलिए इसे पढ़ना मुश्किल है। नतीजतन यह याद रखना आसान है कि आपने [email protected] C . तो दोनों उपश्रेणियाँ C . में सभी रिकॉर्ड के लिए कार्टेशियन उत्पाद तैयार करेंगी . आप शायद यह नहीं चाहते।

SELECT A.PARTY_SITE_NUMBER as FMAT_FMATID
        , B.ZADDRESSFMATID as F4F_FMATID
        , C.ADDRESS2 as FMAT_VALUE
        , B.addressline1 as F4F_VALUE
        , 'ADDRESS2'  
FROM [email protected] A
      inner join  f4f_corporateaccount B on A.PARTY_SITE_NUMBER = B.ZADDRESSFMATID
      inner join  [email protected] C on ** something goes here **
WHERE  B.ROLECODETEXT = 'Site Account'
AND A.STATUS = 'A'

समझने में आसान, लापता जॉइन का पता लगाना आसान। पठनीयता एक विशेषता है।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle ANSI में USING और ON को मिलाना शामिल हों

  2. वैध तिथि की जाँच करें जो varchar2 . में घोषित की गई है

  3. Oracle में JSON सरणी से विशिष्ट तत्व का चयन कैसे करें JSON CLOB प्रकार

  4. कौन सी Oracle तालिका अनुक्रम का उपयोग करती है?

  5. SQL - एक आदेशित सूची में परिवर्तनों की संख्या की गणना करें