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

ओरेकल पीएल/एसक्यूएल कर्सर में टेबल बनाना?

आम तौर पर आप अपनी पीएल/एसक्यूएल प्रक्रिया के अंदर डीडीएल (बनाना, बदलना, छोड़ना) नहीं करते हैं। यदि आपको कुछ अस्थायी डेटा संग्रहीत करने के लिए तालिका की आवश्यकता है, तो आप अस्थायी टेबल इस काम के लिए। आपके मामले में मैं पहले टेबल बनाऊंगा

CREATE GLOBAL TEMPORARY TABLE T1
  (
    col1 VARCHAR2(128),
    col2  VARCHAR2(128),
    col3 NUMBER(3) NOT NULL,
    col3 FLOAT(100)
  );

CREATE GLOBAL TEMPORARY TABLE T2 AS
SELECT * FROM other_table WHERE 1 = 0;

और फिर प्रक्रिया इस तरह दिखेगी

DECLARE
CURSOR CUR IS ...
BEGIN
       FOR rec IN CUR
       LOOP
       --Do stuff here
         END LOOP;

DELETE FROM T1;
DELETE FROM T2;
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. JDBC में खुले कनेक्शन के लिए प्रोग्रामेटिक रूप से जाँच कर रहा है

  2. Oracle हाइबरनेट का उपयोग करके कार्य करता है

  3. HikariCP पास Oracle कस्टम प्रकार

  4. Oracle SQL क्षेत्र में SQL कथन को अमान्य कैसे करें ताकि आँकड़े एकत्रित करते समय एक नई योजना तैयार की जा सके

  5. ORACLE . में LISTAGG