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

Oracle SQL*Plus का उपयोग करके CSV फ़ाइल में कैसे लिखें?

[एसक्यूएलप्लस](https://docs.oracle.com/cd/B19306_01/server.102/b14357/qstart.htm) एक इंटरैक्टिव टूल है जो हर आधुनिक Oracle इंस्टॉलेशन के साथ इंस्टॉल होता है। एसक्यूएल प्लस आपको Oracle के सामान्य दायरे से परे बैचों, स्क्रिप्ट्स और गणनाओं के साथ मानक डेटाबेस प्रश्नों से परे जाने की अनुमति देता है।

यह और भी संभव है, जैसा कि हम नीचे देखेंगे - टेक्स्ट फ़ाइलें जेनरेट करने के लिए, जैसे .csv , किसी विशेष डेटाबेस क्वेरी के आउटपुट का उपयोग करते हुए।

एसक्यूएल*प्लस लॉन्च करना

आपके Oracle इंस्टॉलेशन के आधार पर, आपके पास SQL*Plus एप्लिकेशन चलाने के लिए कई अलग-अलग संस्करणों या "मोड" में से एक तक पहुंच हो सकती है।

SQL*Plus Command-line

यदि आप SQL*Plus Command-line का उपयोग करना चाहते हैं , आप बस sqlplus जारी करेंगे अपने खोल से आदेश:

$ sqlplus

यह आपको डिफ़ॉल्ट . से जोड़ने का प्रयास करेगा डेटाबेस और आपको स्वयं को प्रमाणित करने के लिए अपने क्रेडेंशियल दर्ज करने के लिए प्रेरित किया जाएगा।

घटना में आपको किसी भिन्न database . से कनेक्ट करने की आवश्यकता है या किसी भिन्न user . का उपयोग करें (schema ), अपने स्वयं के मूल्यों को आवश्यकतानुसार प्रतिस्थापित करते हुए निम्नलिखित का प्रयास करें:

$ sqlplus schema@//machine.domain:port/database

iSQL*Plus

यदि आपके पास इसकी पहुंच है, तो आप iSQL*Plus . का उपयोग करना चाह सकते हैं , जो SQL*प्लस कमांड-लाइन टूल का ब्राउज़र-आधारित संस्करण है।

यह केवल iSQL*Plus URL . पर जाकर पूरा किया जाता है आपके डेटाबेस और स्थापना के लिए। सटीक URL अलग-अलग होगा, लेकिन यह आमतौर पर निम्न प्रारूप में होता है:http://machine_name.domain:port/isqlplus

SQL*Plus for Windows

यदि आप Windows का उपयोग कर रहे हैं, तो SQL*Plus का एक Windows GUI संस्करण भी है, जिसे आमतौर पर आपके प्रारंभ मेनू से लॉन्च किया जा सकता है:Start > Programs > Oracle > Application Development > SQL Plus

किसी क्वेरी को फ़ाइल में आउटपुट करना

अब जब आप SQL*Plus से कनेक्ट हो गए हैं तो हम अपनी फ़ाइल बनाना शुरू कर सकते हैं।

एसक्यूएल*प्लस कॉन्फ़िगरेशन संशोधित करें

पहला कदम SET . का उपयोग करके कुछ SQL*PLus सिस्टम सेटिंग्स को कॉन्फ़िगर करना है बयान।

इस उदाहरण के लिए, हम अपनी क्वेरी और फ़ाइल निर्माण से एक बार इन सेटिंग्स को मैन्युअल रूप से बदल देंगे, लेकिन यदि वांछित है, तो आप अपने User Profile में विभिन्न सेटिंग्स के डिफ़ॉल्ट को बदल सकते हैं। , login.sql . में स्थित है फ़ाइल।

set colsep ,
set headsep off
set pagesize 0
set trimspool on

पहली कुछ सेटिंग जिन्हें आप आमतौर पर बदलना नहीं चाहेंगे, लेकिन हम संक्षेप में बताएंगे कि प्रत्येक सेटिंग क्या हासिल करती है।

  • colsep आपके स्तंभों को विभाजित करने के लिए उपयोग किया जाने वाला विभाजक वर्ण है। .csv . के लिए फ़ाइल, यह एक साधारण अल्पविराम है।
  • headsep हेडर पंक्ति के लिए विभाजक वर्ण है (यदि आपको एक की आवश्यकता है)। इस उदाहरण में हम हेडर पंक्ति को आउटपुट नहीं कर रहे हैं, इसलिए हम इसे off छोड़ देंगे ।
  • pagesize "प्रति पृष्ठ" पंक्तियों की संख्या है। यह थोड़ी पुरातन सेटिंग है जो प्रति पृष्ठ बहुत अधिक पंक्तियों के बिना मुद्रण के लिए अभिप्रेत है। 0 . के मान के साथ , हम पृष्ठों का उपयोग नहीं करते हैं क्योंकि हम किसी फ़ाइल को आउटपुट कर रहे हैं। यदि आप header . दिखाना चुनते हैं पंक्ति, सेट करें pagesize बहुत बड़ी संख्या में (क्वेरी में रिकॉर्ड परिणामों की अपेक्षित संख्या से अधिक), इसलिए आपकी शीर्षलेख पंक्ति "प्रति पृष्ठ" के बजाय केवल एक बार दिखाई देगी।
  • trimspool on पर सेट करें बस पिछली खाली जगह को हटा देता है।

अब आपकी क्वेरी के आधार पर अंतिम दो सेटिंग्स को बदलना होगा।

set linesize #
set numwidth #
  • linesize के लिए , # मान आपकी परिणामी क्वेरी में आउटपुट कॉलम की कुल संख्या होनी चाहिए।
  • numwidth संख्यात्मक मानों को आउटपुट करते समय उपयोग की जाने वाली कॉलम चौड़ाई (वर्ण रिक्त स्थान की संख्या) है।

स्पूल कमांड

नोट:SPOOL आदेश अनुपलब्ध है ब्राउज़र-आधारित SQL*प्लस संस्करण में, iSQL*Plus . iSQL*Plus का उपयोग करते हुए फ़ाइलें जेनरेट करने के लिए, आवश्यक वरीयता सेटिंग्स को सीधे फ़ाइल में आउटपुट करने के लिए बदलें।

हमारी सेटिंग्स को ध्यान में रखते हुए, अब हमें फ़ाइल को आउटपुट करने के लिए SQL*Plus बताना होगा। यह SPOOL . का उपयोग करके पूरा किया जाता है बयान।

जबकि SPOOL सक्रिय है , SQL*PLus किसी भी क्वेरी के आउटपुट को निर्दिष्ट फ़ाइल में संग्रहीत करेगा।

इसलिए, दर्ज करने के लिए अगला कमांड है SPOOL :

spool file_path

थोड़ा आगे बढ़ते हुए, बाद में आपकी क्वेरी डाली गई है, आपको SPOOL को भी रोकना होगा इसलिए फ़ाइल आउटपुट को spool off . का उपयोग करके बंद कर दिया जाता है आदेश:

spool off

क्वेरी डालें

सेटिंग्स को संशोधित करने के बाद अंतिम चरण और SPOOL चल रहा है अपनी क्वेरी डालने के लिए। हमारे सरल उदाहरण के लिए, हम अपनी books . से सभी पुस्तकों को आउटपुट कर रहे हैं टेबल।

SELECT
  title,
  primary_author
FROM
  books;

अपने क्वेरी स्टेटमेंट को बंद करने के लिए सेमी-कोलन को न भूलें, फिर उपरोक्त spool off दर्ज करें। आदेश।

बस, आपने SQL*Plus का उपयोग करके अपनी क्वेरी के परिणामों के साथ एक नई टेक्स्ट फ़ाइल जेनरेट की है।

युक्ति:स्क्रिप्ट फ़ाइल का उपयोग करना

प्रत्येक पंक्ति को मैन्युअल रूप से दर्ज करने के बजाय, सभी सेटिंग्स को एक नई स्क्रिप्ट फ़ाइल में दर्ज करने का सुझाव दिया जाता है जिसे आप SQL*प्लस में एक ही कमांड में निष्पादित कर सकते हैं।

EDIT . के साथ एक नई स्क्रिप्ट फ़ाइल बनाएं कथन:

EDIT file_name

अब पूरी स्क्रिप्ट कमांड लिस्ट को अपनी नई फाइल में पेस्ट करें और सेव करें। हमारी उदाहरण स्क्रिप्ट की पूरी सामग्री नीचे पाई जा सकती है।

set colsep ,
set headsep off
set pagesize 0
set trimspool on
set linesize 2
set numwidth 5

spool books.csv

SELECT
  title,
  primary_author
FROM
  books;

spool off

स्क्रिप्ट को निष्पादित करने के लिए, बस @ . का उपयोग करें फ़ाइल नाम के बाद प्रतीक:

@file_name

आपकी स्क्रिप्ट निष्पादित की जानी चाहिए और .csv फ़ाइल अपेक्षानुसार बनाई गई।


  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 डेटाबेस में मान्य समय क्षेत्रों की सूची कैसे लौटाएं?

  2. एसक्यूएल दो अद्वितीय कॉलम के साथ सबसे हाल की तारीख से पंक्तियों का चयन

  3. अल्पविराम से अलग किए गए मानों को ऑरैकल में पंक्तियों में कैसे परिवर्तित करें?

  4. तालिका से दूसरी सबसे बड़ी या तीसरी सबसे बड़ी प्रविष्टि कैसे प्राप्त करें

  5. ओरेकल के प्लस (+) नोटेशन और एएनएसआई जॉइन नोटेशन के बीच अंतर?