Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Kết nối Oracle 21c với SQL Server

Sử dụng trình điều khiển ODBC SQL Server với tác nhân ODBC Dịch vụ Không đồng nhất của Oracle, DG4ODBC, để kết nối Oracle 21c với SQL Server.

  1. Kiểm tra xem phiên bản DG4ODBC của bạn là 32 bit hay 64 bit:
    file dg4odbc

    Nếu tệp file đầu ra của lệnh chứa "ELF 64-bit LSB thi hành" hoặc một cái gì đó tương tự, DG4ODBC là 64-bit và bạn cần sử dụng phiên bản 64-bit của trình điều khiển ODBC SQL Server.

    Nếu không, hãy tải xuống trình điều khiển ODBC SQL Server 32 bit cho nền tảng của bạn.

  2. Cài đặt, cấp phép và kiểm tra trình điều khiển SQL Server ODBC trên máy có cài đặt DG4ODBC.

    Để biết hướng dẫn cài đặt, hãy xem tài liệu trình điều khiển SQL Server ODBC. Tham khảo tài liệu để xem bạn cần đặt biến môi trường nào (LD_LIBRARY_PATH , LIBPATH , LD_RUN_PATH hoặc SHLIB_PATH tùy thuộc vào nền tảng và trình liên kết).

  3. Tạo tệp init DG4ODBC. Ví dụ:
    cd $ORACLE_HOME/hs/admin
    cp initdg4odbc.ora initmssql.ora
  4. Đảm bảo các thông số và giá trị này có trong tệp init của bạn:
    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 
    

    Thay thế my_sql_server_odbc_dsn với tên của nguồn dữ liệu trình điều khiển ODBC SQL Server kết nối với cơ sở dữ liệu SQL Server đích.

  5. Thêm mục nhập vào $ORACLE_HOME/network/admin/listener.ora tạo SID_NAME cho DG4ODBC. Ví dụ:
    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)
       )
     )
    

    Thay thế oracle_home_directory với giá trị của $ORACLE_HOME .

  6. Thêm mục nhập DG4ODBC vào $ORACLE_HOME/network/admin/tnsnames.ora chỉ định SID_NAME đã tạo ở bước trước. Ví dụ:
    MSSQL=
     (DESCRIPTION=
       (ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521))
       (CONNECT_DATA= (SID=mssql))
       (HS=OK)
     )
  7. Khởi động (hoặc khởi động lại) Oracle Listener:
    cd $ORACLE_HOME/bin
    ./lsnrctl stop
    ./lsnrctl start
  8. Kết nối với cơ sở dữ liệu Oracle của bạn trong SQL * Plus.
  9. Trong SQL * Plus, tạo liên kết cơ sở dữ liệu cho cơ sở dữ liệu SQL Server đích. Ví dụ:
    CREATE PUBLIC DATABASE LINK mssqllink CONNECT TO
    "dbuser" IDENTIFIED BY "dbpassword" using 'MSSQL';

    Thay thế dbuser dbpassword với tên người dùng và mật khẩu hợp lệ cho cơ sở dữ liệu SQL Server đích.

Ghi chú
  • Phiên bản Oracle 21c của DG4ODBC không còn sử dụng SQLDriverConnect để kết nối với nguồn dữ liệu ODBC. Nó sử dụng SQLConnect thay vào đó, không hỗ trợ HS_NLS_NCHAR = UCS2 . Tương tự như vậy, các kết nối không có DSN không hoạt động với SQLConnect .
  • Nếu bảng được liên kết của bạn chứa một cột có tên ROWID, truy vấn của bạn sẽ không thành công với lỗi:
    ORA-02070: database SQLSRV2019 does not support ROWIDs in this context

    Để giải quyết vấn đề này, hãy thay đổi tên của cột từ ROWID thành 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. GROUP BY với MAX (DATE)

  2. Tạo bảng và chèn trong cùng một quy trình trong pl / sql

  3. Cách khắc phục sự cố ORA-02049 và khóa các sự cố nói chung với Oracle

  4. Oracle PL / SQL Collections - Tạo Bảng lồng nhau trong Cơ sở dữ liệu

  5. Làm cách nào để sao chép hoặc nhập các lược đồ Oracle giữa hai cơ sở dữ liệu khác nhau trên các máy chủ khác nhau?