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

Oracle में एकाधिक पंक्तियाँ सम्मिलित करने के 4 तरीके

यदि आप MySQL या SQL सर्वर जैसे DBMS का उपयोग करते हैं, तो एकाधिक पंक्तियों को सम्मिलित करने के लिए वाक्य रचना iएक एकल कथन वाली तालिका में बिल्कुल सरल है।

लेकिन अगर आप Oracle डेटाबेस का उपयोग करते हैं, तो आपको एक भिन्न सिंटैक्स का उपयोग करने की आवश्यकता होगी।

विकल्प 1:एक SELECT का उपयोग करें प्रश्न

पहला विकल्प SELECT . का उपयोग करना है प्रत्येक पंक्ति के लिए विवरण जिसे सम्मिलित करने की आवश्यकता है:

INSERT INTO Products (ProductId, ProductName, Price) 
    WITH p AS ( 
        SELECT 1, 'Left Handed Screwdriver', 10.50 FROM dual UNION ALL 
        SELECT 2, 'Right Handed Screwdriver', 22.75 FROM dual UNION ALL 
        SELECT 3, 'Bottomless Coffee Cup (4 pack)', 15.00 FROM dual UNION ALL 
        SELECT 4, 'Urban Dictionary Version 2.3', 75 FROM dual UNION ALL
        SELECT 5, 'Beer Water', 15 FROM dual
  )
SELECT * FROM p;

हमें FROM dual शामिल करने की आवश्यकता है प्रत्येक पंक्ति के लिए, UNION ALL प्रत्येक को संयोजित करने के लिए SELECT कथन, साथ ही अंतिम SELECT बयान।

विकल्प 2:INSERT ALL का उपयोग करें

एक अन्य विकल्प INSERT ALL . का उपयोग करना है कथन:

INSERT ALL 
    INTO Products ( ProductId, ProductName, Price ) VALUES ( 1, 'Left Handed Screwdriver', 10.50 )
    INTO Products ( ProductId, ProductName, Price ) VALUES ( 2, 'Right Handed Screwdriver', 22.75 )
    INTO Products ( ProductId, ProductName, Price ) VALUES ( 3, 'Bottomless Coffee Cup (4 pack)', 15.00 )
    INTO Products ( ProductId, ProductName, Price ) VALUES ( 4, 'Urban Dictionary Version 2.3', 75 )
    INTO Products ( ProductId, ProductName, Price ) VALUES ( 5, 'Beer Water', 15 )
SELECT 1 FROM dual;

dual . से चयन करने वाली अंतिम पंक्ति को शामिल करना सुनिश्चित करें ।

विकल्प 3:एक से अधिक INSERT INTO का उपयोग करें कथन

इसे करने का दूसरा तरीका INSERT INTO . का उपयोग करना है बयान:

INSERT INTO Products VALUES ( 1, 'Left Handed Screwdriver', 10.50 );
INSERT INTO Products VALUES ( 2, 'Right Handed Screwdriver', 22.75 );
INSERT INTO Products VALUES ( 3, 'Bottomless Coffee Cup (4 pack)', 15.00 );
INSERT INTO Products VALUES ( 4, 'Urban Dictionary Version 2.3', 75 );
INSERT INTO Products VALUES ( 5, 'Beer Water', 15 );

यदि आपके पास सम्मिलित करने के लिए बहुत सारी पंक्तियाँ हैं, तो आप पा सकते हैं कि यह पिछली दो विधियों की तुलना में बहुत धीमी गति से चलती है।

विकल्प 4:SQL*Loader का उपयोग करें

यदि आपके पास सम्मिलित करने के लिए बहुत सारी पंक्तियाँ हैं, और शायद यदि आप इसे नियमित रूप से कर रहे हैं, तो आप SQL*Loader पर एक नज़र डालना चाह सकते हैं।

SQL*Loader एक उपयोगिता है जो आपको बाहरी फ़ाइलों से Oracle डेटाबेस तालिकाओं में डेटा लोड करने में सक्षम बनाती है।

उपरोक्त उदाहरणों का उपयोग करते हुए, हमारी नियंत्रण फ़ाइल की सामग्री कुछ इस तरह दिख सकती है:

load data
infile 'products.csv'
into table Products
fields terminated by "," optionally enclosed by '"'              
( ProductId, ProductName, Price )

जहां products.csv वह फ़ाइल है जिसमें सम्मिलित करने के लिए सभी पंक्तियाँ हैं।

और फिर डेटा लोड करना कुछ इस तरह दिख सकता है:

sqlldr <username> control=load_products.ctl

जहां <username> हमारा उपयोगकर्ता नाम है और load_products.ctl हमारी नियंत्रण फ़ाइल है।

SQL*Loader के उपयोग के बारे में अधिक जानकारी के लिए Oracle का दस्तावेज़ीकरण देखें।


  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 परिणामसेट:मुझे एक getDateTime की आवश्यकता है, लेकिन केवल getDate और getTimeStamp है

  2. हाइबरनेट में आईडी उत्पन्न करने के लिए मौजूदा Oracle अनुक्रम का उपयोग कैसे करें?

  3. मैं Oracle में row_number को कैसे गति दे सकता हूँ?

  4. ऑरैकल में स्ट्रिंग के हिस्से को कैसे हटाएं

  5. एजेंट अवरुद्ध है