यदि आप 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 का दस्तावेज़ीकरण देखें।