首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Oracle失败,“无法检索网络/NCR消息65535的文本”,似乎没有读取initSID.ora

Oracle失败,“无法检索网络/NCR消息65535的文本”,似乎没有读取initSID.ora
EN

Stack Overflow用户
提问于 2019-10-17 21:23:38
回答 1查看 5K关注 0票数 1

第一次使用Oracle设置ODBC链接。我已经在\hs\admin中设置了listener.ora、tnsnames.ora和init文件,但是数据库链接始终失败:

代码语言:javascript
复制
ORA-28545: error diagnosed by Net8 when connecting to an agent
Unable to retrieve text of NETWORK/NCR message 65535
ORA-02063: preceding 2 lines from EXTLINK
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.
Vendor code 28545

没有出现跟踪文件,这使我认为init文件甚至没有被读取。我可以使用Access连接到ODBC数据库,所以我知道它可以工作。ODBC驱动程序和DG4ODBC都是64位.

到目前为止,我尝试过的是:

  • --我将两个文件中的主机设置为主机名、IP地址和HOSTNAME.DOMAIN.local,但没有进行任何更改。
  • I使tnsnames.ora和listener.ora中的连接地址(协议/主机/端口)相同,但没有改变。
  • 我用随机垃圾替换了侦听器的主机,然后TNSPING失败了。
  • 在hs\admin中复制了tnsnames.ora.sample、initgd4odbc.ora和listener.ora.sample文件,并在最后与ODBC源进行了测试连接;但是它以同样的方式失败,没有生成跟踪文件。
  • 在listener.ora中为SID_NAME添加了随机字符,在tnsnames.ora中为CONNECT_DATA中的SID添加了随机字符,但是仍然得到了相同的错误,似乎没有其他影响。

这是我们的文件。一些名称已经被更改以保护机密性,但它在其他方面是没有被触及的。

tnsnames.ora:

代码语言:javascript
复制
LISTENER_ORCL =
  (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))

ORACLR_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
    (CONNECT_DATA =
      (SID = CLRExtProc)
      (PRESENTATION = RO)
    )
  )


ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl.[DOMAINNAME].local)
    )
  )


EXTLINK=
  (DESCRIPTION=
    (ADDRESS=(PROTOCOL=TCP)(HOST = [HOSTNAME])(PORT=1521))
    (CONNECT_DATA=(SID=EXTLINK))
    (HS=OK)
  )

listener.ora:

代码语言:javascript
复制
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = CLRExtProc)
      (ORACLE_HOME = C:\app\[MYUSERNAME]\virtual\product\12.2.0\dbhome_1)
      (PROGRAM = extproc)
      (ENVS = "EXTPROC_DLLSONLY:C:\app\[MYUSERNAME]\virtual\product\12.2.0\dbhome_1\bin\oraclr12.dll")
    )
     (SID_DESC=
       (SID_NAME=EXTLINK)
       (ORACLE_HOME=C:\app\[MYUSERNAME]\virtual\product\12.2.0\dbhome_1)
       (PROGRAM=dg4odbc)
     )
  )


LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = [HOSTNAME])(PORT = 1521))
    )
  )


CONNECT_TIMEOUT_LISTENER = 0

%ORACLE_HOME\hs\admin\initEXTLINK.ora:

代码语言:javascript
复制
# Windows
HS_FDS_CONNECT_INFO = EXTLINK
HS_FDS_TRACE_LEVEL = 255
HS_FDS_FETCH_ROWS=1
HS_KEEP_REMOTE_COLUMN_SIZE = LOCAL
#HS_NLS_NCHAR=UCS2
HS_LANGUAGE=AMERICAN_AMERICA.WE8ISO8859P1

连接字符串:

代码语言:javascript
复制
CREATE PUBLIC DATABASE LINK EXTLINK CONNECT TO "Username" IDENTIFIED BY "Pass" USING 'EXTLINK';
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-21 13:48:53

取而代之的是安装了18c XE,它工作得很完美,所以这对我来说已经足够好了。但我不知道它为什么一开始就失败了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58440907

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档