अपने Oracle® और SQL सर्वर डेटा को एकीकृत करते समय हमारे ग्राहक जो विशिष्ट मार्ग अपनाते हैं, वह हमारे SQL सर्वर ODBC ड्राइवर के साथ Oracle® विषम सेवाओं का उपयोग करना है। यह तरीका हमारे DG4ODBC ट्यूटोरियल में वर्णित है।
एक वैकल्पिक तरीका bcp
. का उपयोग करना है Oracle® SQL*Loader
. के संयोजन में SQL Server ODBC ड्राइवर वितरण में शामिल टूल . आप एक नामित पाइप का उपयोग bcp
. के बीच डेटा नाली के रूप में कर सकते हैं और एसक्यूएल*लोडर
यानी आपको bcp
. का उपयोग करने की आवश्यकता नहीं है SQL सर्वर डेटा को किसी भौतिक फ़ाइल में लिखने के लिए और फिर इस फ़ाइल को SQL*Loader
के डेटा स्रोत के रूप में उपयोग करें (हालांकि आप चाहें तो कर सकते हैं)।
- SQL सर्वर में कुछ नमूना डेटा बनाएँ:
$ cd /usr/local/easysoft/unixodbc/bin$ ./isql.sh -v SQLSERVER_SAMPLE+--------------- ------------------------+| जुड़े हुए! || || एसक्यूएल-कथन || सहायता [टेबलनाम] || छोड़ो || |+---------------------------------------+एसक्यूएल> तालिका बनाएं bcptest (c1 int , c2 varchar(20))SQLRowCount रिटर्न -1SQL> bcptest मानों में डालें (1, 'हैलो'),(2,'वर्ल्ड')SQLRowCount 2SQL लौटाता है> bcptest+---------- से * चुनें -+---------------------+| c1 | c2 |+---------------+---------------------+| 1 | नमस्ते || 2 | विश्व |+---------------+---------------------+SQLRowCount रिटर्न -12 पंक्तियाँ प्राप्त की गईंSQL>
- SQL सर्वर डेटा रखने के लिए Oracle® में एक तालिका बनाएं:
SQL> तालिका bcptest (c1 int, c2 varchar(20)) बनाएं
- एक नामित पाइप बनाएं:
$ mknod /tmp/bcp-pipe p
- एक
SQL*Loader
बनाएं और पॉप्युलेट करें नियंत्रण फ़ाइल:$ cat /tmp/bcp.ctlलोड डेटा "\t" (c1, c2) द्वारा समाप्त तालिका bcptest फ़ील्ड में संलग्न करें
- चलाएं
एसक्यूएल*लोडर
पृष्ठभूमि में, जहां यह डेटा के आने की प्रतीक्षा में रहेगा:$ cd /u01/app/oracle/product/11.2.0/xe/bin$ ./sqlldr myuser/password data=/tmp/bcp-pipe control=/tmp/bcp.ctl &
बीसीपी
का प्रयोग करें पाइप पर लिखने के लिए:पासवर्ड
एसक्यूएल*लोडर
प्रक्रिया पाइप से डेटा पढ़ती है, रिकॉर्ड को Oracle® में सम्मिलित करती है और समाप्त करती है:
$ SQL*Loader:रिलीज़ 11.2.0.2.0 - शुक्र 4 नवंबर को उत्पादन 07:18:53 2016कॉपीराइट (c) 1982, 2009, Oracle और/या इसके सहयोगी। सर्वाधिकार सुरक्षित.-बैश-4.1$ कमिट पॉइंट पर पहुंच गया - लॉजिकल रिकॉर्ड काउंट 2[1]+ हो गया ./sqlldr myuser/mypassword data=/tmp/bcp-pipe control=/tmp/bcp.ctl &
रिकॉर्ड अब Oracle® में हैं, जैसा कि SQL*Plus
. में निम्न क्वेरी द्वारा दिखाया गया है :
$ ./sqlplusSQL> bcptest से * चुनें; C1 C2------------------------------- 1 हैलो 2 वर्ल्ड