निम्नलिखित निर्देश आपको लिनक्स पर Oracle को PostgreSQL से कनेक्ट करने का तरीका बताते हैं। DG4ODBC के बारे में अधिक जानकारी के लिए, हमारा DG4ODBC ट्यूटोरियल देखें।
- Linux के लिए 64-बिट PostgreSQL ODBC ड्राइवर डाउनलोड करें।
- उस मशीन पर PostgreSQL ODBC ड्राइवर को स्थापित और लाइसेंस दें जहां Oracle स्थापित है।
स्थापना निर्देशों के लिए, ODBC ड्राइवर दस्तावेज़ीकरण देखें।
नोट आपको अपनी मशीन पर यूनिक्सोडबीसी ड्राइवर मैनेजर स्थापित करने की आवश्यकता है। Easysoft वितरण में unixODBC ड्राइवर प्रबंधक का एक संस्करण शामिल है जिसके साथ Easysoft PostgreSQL ODBC ड्राइवर का परीक्षण किया गया है। Easysoft ड्राइवर सेटअप प्रोग्राम आपको unixODBC इंस्टॉल करने का विकल्प देता है।
- /etc/odbc.ini में एक ODBC डेटा स्रोत बनाएं जो उस PostgreSQL डेटाबेस से जुड़ता है जिसे आप Oracle से एक्सेस करना चाहते हैं। उदाहरण के लिए:
[POSTGRES_SAMPLE] Driver=Easysoft ODBC-Postgres Server Description=Easysoft ODBC-Postgres Server Server=192.0.2.1 Port=5432 Database=employees User=postgres Password=p4550rd Logging=No LogFile= Encrypt=No
- नए डेटा स्रोत का परीक्षण करने के लिए isql का उपयोग करें। उदाहरण के लिए:
cd /usr/local/easysoft/unixODBC/bin ./isql.sh -v POSTGRESQL_SAMPLE
प्रांप्ट पर, तालिकाओं की सूची प्रदर्शित करने के लिए "सहायता" टाइप करें। बाहर निकलने के लिए, खाली प्रॉम्प्ट लाइन में रिटर्न दबाएं।
यदि आप कनेक्ट करने में असमर्थ हैं, तो सहायता के लिए इस लेख को देखें।
- एक DG4ODBC init फ़ाइल बनाएँ। ऐसा करने के लिए,
hs/admin
. में बदलें उपनिर्देशिका। उदाहरण के लिए:cd $ORACLE_HOME/product/11.2.0/xe/hs/admin
फ़ाइल की एक प्रति बनाएँ
initdg4odbc.ora
. नई फ़ाइल को नाम देंinitpostgresql.ora
। - सुनिश्चित करें कि ये पैरामीटर और मान आपकी init फ़ाइल में मौजूद हैं:
HS_FDS_CONNECT_INFO = my_postgresql_odbc_dsn
my_postgresql_odbc_dsn . को बदलें एक PostgreSQL ODBC ड्राइवर डेटा स्रोत के नाम के साथ जो लक्ष्य PostgreSQL सर्वर से जुड़ता है। उदाहरण के लिए
HS_FDS_CONNECT_INFO = "POSTGRES_SAMPLE"
- टिप्पणी करें कि DG4ODBC ट्रेसिंग सक्षम है। उदाहरण के लिए:
#HS_FDS_TRACE_LEVEL = <trace_level>
listener.ora
में एक प्रविष्टि जोड़ें जो DG4ODBC के लिए एक SID_NAME बनाता है। उदाहरण के लिए:SID_LIST_LISTENER = (SID_LIST = (SID_DESC= (SID_NAME=postgresql) (ORACLE_HOME=$ORACLE_HOME) (PROGRAM=dg4odbc) ) )
- एक DG4ODBC प्रविष्टि को
tnsnames.ora
में जोड़ें जो पिछले चरण में बनाए गए SID_NAME को निर्दिष्ट करता है। उदाहरण के लिए:POSTGRESQL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = oracle_host)(PORT = 1521)) (CONNECT_DATA = (SID = postgresql) ) (HS = OK) )
बदलें oracle_host अपने Oracle मशीन के होस्ट नाम के साथ।
- ओरेकल श्रोता को प्रारंभ (या पुनः आरंभ) करें। उदाहरण के लिए:
lsnrctl stop lsnrctl start
- SQL*Plus में अपने Oracle डेटाबेस से कनेक्ट करें।
- एसक्यूएल*प्लस में, लक्ष्य पोस्टग्रेएसक्यूएल सर्वर के लिए एक डेटाबेस लिंक बनाएं। उदाहरण के लिए:
CREATE PUBLIC DATABASE LINK postgresqllink CONNECT TO "my_postgresql_user" IDENTIFIED by "my_postgresql_password" USING 'postgresql'; SELECT * from employees@postgresqllink
नोट
- यदि आपको Oracle से PostgreSQL से कनेक्ट करने में समस्या आ रही है, तो DG4ODBC ट्रेसिंग सक्षम करें और
hs/log
पर लिखी गई ट्रेस फ़ाइलों की जांच करें। निर्देशिका। DG4ODBC ट्रेसिंग को सक्षम करने के लिए, लाइन जोड़ेंHS_FDS_TRACE_LEVEL = DEBUG
करने के लिएinitpostgresql.ora
और फिर Oracle श्रोता को प्रारंभ/पुनरारंभ करें। अगरlog
निर्देशिका मौजूद नहीं है, इसे बनाएं। उदाहरण के लिए:mkdir log chmod +w log
- यदि आपको "ORA-00997:LONG डेटाटाइप का अवैध उपयोग" त्रुटि मिलती है, तो अपने ODBC डेटा स्रोत में निम्न में से एक प्रविष्टि जोड़ें:
DisguiseLong=1 # For non-Wide PostgreSQL long columns LimitLong=size in bytes # If this value is too big you will get ORA-00997
–या–
DisguiseWlong=1 LimitLong=size in bytes# If this value is too big you will get ORA-00997
- यदि आपको Oracle में PostgreSQL डेटा के साथ काम करते समय "ORA-28562:Heterogeneous Services data truncation error" मिलता है, तो हमारे पास आपके लिए एक वैकल्पिक हल हो सकता है, लेकिन आपको इसका उपयोग करने के निहितार्थों को समझने की आवश्यकता है। अधिक जानकारी के लिए, Easysoft सहायता टीम () से संपर्क करें।