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

Kết nối Oracle với PostgreSQL

Các hướng dẫn sau đây chỉ cho bạn cách kết nối Oracle trên Linux với PostgreSQL. Để biết thêm thông tin về DG4ODBC, hãy tham khảo hướng dẫn DG4ODBC của chúng tôi.

  1. Tải xuống trình điều khiển PostgreSQL ODBC 64-bit cho Linux.
  2. Cài đặt và cấp phép trình điều khiển PostgreSQL ODBC trên máy có cài đặt Oracle.

    Để biết hướng dẫn cài đặt, hãy xem tài liệu trình điều khiển ODBC.

    Lưu ý Bạn cần cài đặt Trình quản lý trình điều khiển unixODBC trên máy của mình. Bản phân phối Easysoft bao gồm phiên bản Trình quản lý trình điều khiển unixODBC mà trình điều khiển Easysoft PostgreSQL ODBC đã được thử nghiệm. Chương trình cài đặt trình điều khiển Easysoft cung cấp cho bạn tùy chọn cài đặt unixODBC.

  3. Tạo nguồn dữ liệu ODBC trong /etc/odbc.ini kết nối với cơ sở dữ liệu PostgreSQL mà bạn muốn truy cập từ Oracle. Ví dụ:
    [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
    
  4. Sử dụng isql để kiểm tra nguồn dữ liệu mới. Ví dụ:
    cd /usr/local/easysoft/unixODBC/bin
    ./isql.sh -v POSTGRESQL_SAMPLE
    

    Tại lời nhắc, gõ "help" để hiển thị danh sách các bảng. Để thoát, hãy nhấn quay lại trong một dòng nhắc trống.

    Nếu bạn không thể kết nối, hãy tham khảo bài viết này để được hỗ trợ.

  5. Tạo tệp init DG4ODBC. Để thực hiện việc này, hãy thay đổi thành hs/admin thư mục con. Ví dụ:
    cd $ORACLE_HOME/product/11.2.0/xe/hs/admin
    

    Tạo bản sao của tệp initdg4odbc.ora . Đặt tên cho tệp mới initpostgresql.ora .

  6. Đả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_postgresql_odbc_dsn
    

    Thay thế my_postgresql_odbc_dsn với tên của nguồn dữ liệu trình điều khiển PostgreSQL ODBC kết nối với máy chủ PostgreSQL đích. Ví dụ

    HS_FDS_CONNECT_INFO = "POSTGRES_SAMPLE"
    
  7. Nhận xét dòng cho phép theo dõi DG4ODBC. Ví dụ:
    #HS_FDS_TRACE_LEVEL = <trace_level>
    
  8. Thêm mục nhập vào listener.ora tạo SID_NAME cho DG4ODBC. Ví dụ:
    SID_LIST_LISTENER =
     (SID_LIST =
       (SID_DESC=
         (SID_NAME=postgresql)
         (ORACLE_HOME=$ORACLE_HOME)
         (PROGRAM=dg4odbc)
       )
     )
    
  9. Thêm mục nhập DG4ODBC vào tnsnames.ora chỉ định SID_NAME đã tạo ở bước trước. Ví dụ:
    POSTGRESQL =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = oracle_host)(PORT = 1521))
        (CONNECT_DATA =
          (SID = postgresql)
        )
        (HS = OK)
      )
    

    Thay thế oracle_host với tên máy chủ của máy Oracle của bạn.

  10. Khởi động (hoặc khởi động lại) Trình xử lý Oracle. Ví dụ:
    lsnrctl stop
    lsnrctl start
    
  11. Kết nối với cơ sở dữ liệu Oracle của bạn trong SQL * Plus.
  12. Trong SQL * Plus, tạo liên kết cơ sở dữ liệu cho máy chủ PostgreSQL đích. Ví dụ:
    CREATE PUBLIC DATABASE LINK postgresqllink CONNECT TO
    "my_postgresql_user" IDENTIFIED by "my_postgresql_password" USING 'postgresql';
    SELECT * from employees@postgresqllink
    
Ghi chú
  • Nếu bạn gặp sự cố khi kết nối với PostgreSQL từ Oracle, hãy bật theo dõi DG4ODBC và kiểm tra các tệp theo dõi được ghi vào hs/log danh mục. Để bật theo dõi DG4ODBC, hãy thêm dòng HS_FDS_TRACE_LEVEL = DEBUG tới initpostgresql.ora và sau đó khởi động / khởi động lại trình nghe Oracle. Nếu log thư mục không tồn tại, tạo nó. Ví dụ:
    mkdir log
    chmod +w log
    
  • Nếu bạn gặp lỗi "ORA-00997:sử dụng bất hợp pháp kiểu dữ liệu LONG", hãy thêm một trong các mục sau vào nguồn dữ liệu ODBC của bạn:
    DisguiseLong=1 # For non-Wide PostgreSQL long columns
    LimitLong=size in bytes # If this value is too big you will get ORA-00997

    –Hay–

    DisguiseWlong=1
    LimitLong=size in bytes# If this value is too big you will get ORA-00997
  • Nếu bạn gặp phải "ORA-28562:Lỗi cắt ngắn dữ liệu Dịch vụ Không đồng nhất", khi làm việc với dữ liệu PostgreSQL trong Oracle, chúng tôi có thể có một giải pháp cho bạn, nhưng bạn cần hiểu ý nghĩa của việc sử dụng nó. Để biết thêm thông tin, hãy liên hệ với nhóm Hỗ trợ Easysoft ().

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm thế nào để biên dịch tất cả các gói không hợp lệ trong lược đồ?

  2. ORA-00918:cột được xác định không rõ ràng trong SELECT *

  3. Cách cắt ngắn TABLE trong Oracle

  4. Làm cách nào để chuyển động các giá trị cho toán tử IN?

  5. Cách thay đổi ngôn ngữ cho phiên Oracle của bạn