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

Oracle संग्रहीत कार्यविधि के लिए वैश्विक अस्थायी तालिकाओं के लिए वैकल्पिक विधि

टी-एसक्यूएल टेंप टेबल अनिवार्य रूप से मेमोरी स्ट्रक्चर हैं। वे MSSQL में लाभ प्रदान करते हैं जो Oracle में कम स्पष्ट हैं, क्योंकि दो RDBMS आर्किटेक्चर में अंतर है। इसलिए यदि आप माइग्रेट करना चाहते हैं तो आपको ओरेकल के लिए अधिक उपयुक्त दृष्टिकोण अपनाने की सलाह दी जाएगी।

हालाँकि, आपके पास एक अलग स्थिति है, और स्पष्ट रूप से दो कोड आधारों को सिंक में रखने से आपका जीवन आसान हो जाएगा।

अस्थायी तालिकाओं की सबसे नज़दीकी चीज़ जैसा कि आप उनका उपयोग करना चाहते हैं पीएल/एसक्यूएल संग्रह हैं; विशेष रूप से, नेस्टेड टेबल।

इन्हें घोषित करने के कुछ तरीके हैं। पहला है SQL टेम्प्लेट - एक कर्सर - का उपयोग करना और इसके आधार पर एक नेस्टेड टेबल प्रकार को परिभाषित करना। दूसरा रिकॉर्ड प्रकार घोषित करना है और फिर उस पर नेस्टेड तालिका को परिभाषित करना है। किसी भी मामले में, संग्रह चर को बल्क ऑपरेशन के साथ पॉप्युलेट करें।

declare
    -- approach #1 - use a cursor
    cursor c1 is 
          select *
          from t23;
    type nt1 is table of c1%rowtype;
    recs1 nt1;

    -- approach #1a - use a cursor with an explicit projection
    cursor c1a is 
          select id, col_d, col_2 
          from t23;
    type nt1a is table of c1a%rowtype;
    recs1 nt1a;


    -- approach #2 - use a PL/SQL record
    type r2 is record (
        my_id number
        , some_date date
        , a_string varchar2(30)
    );
    type nt2 is table of r2;
    recs2 nt2;
begin
    select *
    bulk collect into recs1
    from t23;

    select id, col_d, col_2
    bulk collect into recs2
    from t23;
end;
/

कर्सर का उपयोग करने से अंतर्निहित तालिका (तालिकाओं) में परिवर्तनों को स्वचालित रूप से प्रतिबिंबित करने का लाभ मिलता है। हालांकि रिकॉर्ड अंतर्निहित तालिका (तालिकाओं) में परिवर्तन के सामने स्थिरता का लाभ प्रदान करता है। यह सिर्फ इस बात पर निर्भर करता है कि आप क्या चाहते हैं :)

पीएल/एसक्यूएल संदर्भ पुस्तिका में एक संपूर्ण अध्याय है। अधिक जानने के लिए इसे पढ़ें




  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. क्या डेटाबेस डिज़ाइन में विदेशी कुंजियाँ वास्तव में आवश्यक हैं?

  3. Oracle 12c क्लाइंट इंस्टॉलर त्रुटि

  4. ओरेकल एसक्यूएल में बराबर 'शो क्रिएट टेबल'

  5. Oracle DBA रीयल टाइम प्रश्न