Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Menghubungkan Oracle 21c ke SQL Server

Gunakan driver SQL Server ODBC dengan agen ODBC Layanan Heterogen Oracle, DG4ODBC, untuk menghubungkan Oracle 21c ke SQL Server.

  1. Periksa apakah versi DG4ODBC Anda 32-bit atau 64-bit:
    file dg4odbc

    Jika file output perintah berisi "ELF 64-bit LSB executable", atau yang serupa, DG4ODBC adalah 64-bit, dan Anda perlu menggunakan versi 64-bit dari driver SQL Server ODBC.

    Jika tidak, unduh driver SQL Server ODBC 32-bit untuk platform Anda.

  2. Instal, lisensikan, dan uji driver SQL Server ODBC pada mesin tempat DG4ODBC diinstal.

    Untuk petunjuk penginstalan, lihat dokumentasi driver SQL Server ODBC. Lihat dokumentasi untuk melihat variabel lingkungan mana yang perlu Anda setel (LD_LIBRARY_PATH , LIBPATH , LD_RUN_PATH atau SHLIB_PATH tergantung pada platform dan penautnya).

  3. Buat file init DG4ODBC. Misalnya:
    cd $ORACLE_HOME/hs/admin
    cp initdg4odbc.ora initmssql.ora
  4. Pastikan parameter dan nilai ini ada di file init Anda:
    HS_FDS_CONNECT_INFO = my_sql_server_odbc_dsn
    HS_FDS_SHAREABLE_NAME = /usr/local/easysoft/unixODBC/lib/libodbc.so
    HS_LANGUAGE = AMERICAN_AMERICA.WE8ISO8859P1 
    

    Ganti my_sql_server_odbc_dsn dengan nama sumber data driver SQL Server ODBC yang terhubung ke database SQL Server target.

  5. Tambahkan entri ke $ORACLE_HOME/network/admin/listener.ora yang membuat SID_NAME untuk DG4ODBC. Misalnya:
    SID_LIST_LISTENER =
     (SID_LIST =
       (SID_DESC=
         (SID_NAME=mssql)
         (ORACLE_HOME=oracle_home_directory)
         (PROGRAM=dg4odbc)
         (ENVS=LD_LIBRARY_PATH = /usr/local/easysoft/unixODBC/lib:
                /usr/local/easysoft/lib)
       )
     )
    

    Ganti Oracle_home_directory dengan nilai $ORACLE_HOME .

  6. Tambahkan entri DG4ODBC ke $ORACLE_HOME/network/admin/tnsnames.ora yang menentukan SID_NAME yang dibuat pada langkah sebelumnya. Misalnya:
    MSSQL=
     (DESCRIPTION=
       (ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521))
       (CONNECT_DATA= (SID=mssql))
       (HS=OK)
     )
  7. Mulai (atau mulai ulang) Oracle Listener:
    cd $ORACLE_HOME/bin
    ./lsnrctl stop
    ./lsnrctl start
  8. Hubungkan ke database Oracle Anda di SQL*Plus.
  9. Di SQL*Plus, buat link database untuk database SQL Server target. Misalnya:
    CREATE PUBLIC DATABASE LINK mssqllink CONNECT TO
    "dbuser" IDENTIFIED BY "dbpassword" using 'MSSQL';

    Ganti dbuser dan dbpassword dengan nama pengguna dan sandi yang valid untuk database SQL Server target.

Catatan
  • Versi Oracle 21c dari DG4ODBC tidak lagi menggunakan SQLDriverConnect untuk terhubung ke sumber data ODBC. Ini menggunakan SQLConnect sebagai gantinya, yang tidak mendukung HS_NLS_NCHAR = UCS2 . Demikian juga, koneksi tanpa DSN tidak berfungsi dengan SQLConnect .
  • Jika tabel tertaut Anda berisi kolom bernama ROWID, kueri Anda akan gagal dengan kesalahan:
    ORA-02070: database SQLSRV2019 does not support ROWIDs in this context

    Untuk mengatasinya, ubah nama kolom dari ROWID menjadi ROWNUM.


  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 Text tidak akan berfungsi dengan NVARCHAR2. Apa lagi yang mungkin tidak tersedia?

  2. SQL (ORACLE):ORDER BY dan LIMIT

  3. Apakah mungkin menjalankan skrip SQLPLUS pada file yang dikodekan sebagai UTF-8 dengan BOM

  4. Operator Oracle INTERSECT Dijelaskan

  5. Buat Pengguna Oracle Baru dan Berikan Hak Istimewa:Sintaks dan Contoh