2012-02-22 2 views
2

나는 오라클에서이 쿼리를 시도 :Linux에서 Oracle 10gR2에서 dblink를 설치하는 방법 Linux에서 RedHat 64bit를 Postgresql 8.3으로 RedHat 64bit에서도 설치 하시겠습니까?

ORA-28545: error diagnosed by Net8 when connecting to an agent 
Unable to retrieve text of NETWORK/NCR message 65535 
ORA-02063: précédant 2 lines de RECORD 
28545. 0000 - "error diagnosed by Net8 when connecting to an agent" 
*Cause: An attempt to call an external procedure or to issue SQL 
     to a non-Oracle system on a Heterogeneous Services database link 
     failed at connection initialization. The error diagnosed 
     by Net8 NCR software is reported separately. 
*Action: Refer to the Net8 NCRO error message. If this isn't clear, 
     check connection administrative setup in tnsnames.ora 
     and listener.ora for the service associated with the 
     Heterogeneous Services database link being used, or with 
     'extproc_connection_data' for an external procedure call. 
Erreur à la ligne 1, colonne 25 

여기 의 tnsnames.ora

Postgres = 
    (DESCRIPTION = 
    (ADDRESS_LIST = 
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) 
    ) 
    (CONNECT_DATA = 
    (SID = RECORD) 
    ) 
    (HS=OK) 
) 

에게 있습니다 여기 청취자입니다 :

여기
select * from "a_table"@Postgres; 

은 내가 오류 메시지입니다. ora

,
LISTENER_HS = 
    (DESCRIPTION_LIST = 
    (DESCRIPTION = 
     (ADDRESS_LIST = 
     (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1525)) 
     (ADDRESS = (PROTOCOL = IPC)(KEY = PNPKEY)) 
    ) 
    ) 
) 

SID_LIST_LISTENER_HS = 
    (SID_LIST = 
    (SID_DESC = 
     (SID_NAME = RECORD) 
     (ORACLE_HOME = /oracle/product/10.2.0) 
     (PROGRAM = hsodbc) 
     (ENVS = "LD_LIBRARY_PATH=/oracle/product/10.2.0/lib32:/oracle/product/10.2.0/hs/lib32:/user/lib") 
    ) 
    (SID_DESC = 
     (SID_NAME = PLSExtProc) 
     (ORACLE_HOME = /oracle/product/10.2.0) 
     (PROGRAM = extproc) 
    ) 
) 

주 청취자를 시작한 후, 여기에 출력을 여기 initPostgres.ora

$ lsnrctl status LISTENER_HS 

LSNRCTL for Linux: Version 10.2.0.3.0 - Production on 22-FEB-2012 13:45:09 

Copyright (c) 1991, 2006, Oracle. All rights reserved. 

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1525))) 
STATUS of the LISTENER 
------------------------ 
Alias      LISTENER_HS 
Version     TNSLSNR for Linux: Version 10.2.0.3.0 - Production 
Start Date    22-FEB-2012 13:45:05 
Uptime     0 days 0 hr. 0 min. 3 sec 
Trace Level    off 
Security     ON: Local OS Authentication 
SNMP      ON 
Listener Parameter File /oracle/product/10.2.0/network/admin/listener.ora 
Listener Log File   /oracle/product/10.2.0/network/log/listener_hs.log 
Listening Endpoints Summary... 
    (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1525))) 
    (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=PNPKEY))) 
Services Summary... 
Service "PLSExtProc" has 1 instance(s). 
    Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service... 
Service "RECORD" has 1 instance(s). 
    Instance "RECORD", status UNKNOWN, has 1 handler(s) for this service... 
The command completed successfully 

HS_FDS_CONNECT_INFO = Postgres 
HS_FDS_TRACE_LEVEL = DEBUG 
HS_FDS_TRACE_FILE_NAME = /oracle/product/10.2.0/hs/log/postgres.trc 
HS_FDS_SHAREABLE_NAME = /usr/lib/psqlodbc.so 

set ODBCINI= /etc/odbc.ini 

/oracle/product/10.2.0/hs/log/record.trc가 비어 있습니다.

무엇이 누락 되었습니까?

오라클 10gR2의
이 리눅스 레드햇 64 비트

PostgreSQL을 8.3
리눅스 레드햇 64 비트가

이 편집 : 수동으로 ODBC 드라이버가 실행되는지 확인하려고 할 때, 이것은 무엇이다 알겠습니다 :

$ isql postgres USER PASS -v 
[01000][unixODBC][Driver Manager]Can't open lib '/usr/lib/psqlodbc.so' : /usr/lib/psqlodbc.so: Ne peut ouvrir le fichier d'objet partagé: Aucun fichier ou répertoire de ce type 
[ISQL]ERROR: Could not SQLConnect 

답변

2

Oracle 포럼에 관한 동일한 질문과 답변을 얻습니다.

간단히 말해 Linux의 32 비트 포트가없는 Linux 64 비트에서는 hsodbc을 사용할 수 없습니다. 대신 Oracle 내 10.2.0.3에 incompatibe 인 DG4ODBC을 사용해야합니다. 다음 나의 대안은 다음 중 하나를 ODBC에 대한 11.2.0.3 오라클 10.2.0.3에서 오라클 10.2.0.4에

  • 마이그레이션 이상
  • 또는 적용 패치를 데이터베이스 게이트웨이를 설치

    • 5,965,763

    상세한 답변은 here입니다.

  • 관련 문제