2012-02-22 11 views
2

私は、Oracleからこのクエリを試してみてください。ここでLinuxのOracle 10gR2からdblinkを設定する方法RedHat 64bitからLinuxのRedHat 64bitでもPostgreSQL 8.3へ?

select * from "a_table"@Postgres; 

は私が取得エラーメッセージです:ここで

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) 
) 

リスナーです。 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が空です。

私には何が欠けていますか?

のOracle 10gR2の
のLinux RedHatの64ビット

Postgresqlの8.3
のLinux RedHatの64

EDIT: 私は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の64bitでhsodbcを使用することはできません。Linux 32bitからのポートはありません。 代わりに、DG4ODBCと私のOracle 10.2.0.3との間に互換性がありません。 その後、私の選択肢があるのいずれか:ODBCのために11.2.0.3のOracle 10.2.0.3からのOracle 10.2.0.4へ

  • 移行またはそれ以上
  • または適用するパッチをデータベースゲートウェイをインストール

    詳細な返答はhereです。