我的问题:我想将Oracle 12c Enterprise与SQLServer 2012连接起来。我尝试了不同的教程,但我没有成功。在我使用异构服务的最新方法中,当我尝试查询某些内容时出现以下错误:
从conf @ PAS中选择;
ORA-28545:无法检索NETWORK / NCR消息65535的文本
conf是SQL Server中的一个表,PAS是我的数据库链接的名称。
我遵循的不同指南说我必须更改3个文件才能建立连接。我将在下面发布:
注意:我的两个数据库都在同一台机器上运行。
的listener.ora:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = CLRExtProc)
(ORACLE_HOME = C:\OracleDB\product\12.1.0\dbhome_1)
(PROGRAM = extproc)
(ENVS = "EXTPROC_DLLS=ONLY:C:\OracleDB\product\12.1.0\dbhome_1\bin\oraclr12.dll")
)
(SID_DESC =
(SID_NAME=PAS)
(ORACLE_HOME = C:\OracleDB\product\12.1.0\dbhome_1)
(PROGRAM = dg4odbc)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = PASSRV1)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)
的tnsnames.ora:
ORACLR_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
(CONNECT_DATA =
(SID = CLRExtProc)
(PRESENTATION = RO)
)
)
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = PASSRV1)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
PAS =
(DESCRIPTION=
(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1433))
(CONNECT_DATA=(SID=PAS))
(HS=OK)
)
initPAS.ora:
HS_FDS_CONNECT_INFO = PAS
HS_FDS_TRACE_LEVEL = OFF
我使用此命令创建了链接:
CREATE DATABASE LINK PAS CONNECT TO "user" IDENTIFIED BY "password" USING 'PAS';
问题是,我并不是真的知道错误的原因,我也不知道如何解决它。所以我希望你们中的一个可以帮助我。
如果有更简单的方法来创建链接,如果你告诉我,我将不胜感激。我愿意接受建议。
谢谢!
答案 0 :(得分:0)
我通过使用oracle网关并按照简单的教程解决了这个问题。
答案 1 :(得分:0)
我以前遇到类似问题,请先尝试tnsping
到PAS
cmd> tnsping PAS
如果您没有任何问题,请尝试更改PAS 1433
的端口SQL Server
已在默认配置中使用。尝试启动监听器,没有任何错误。
考虑到SQL Server的oracle数据库网关有额外的成本,如果从oracle安装install cd 5
,您可能会遇到oracle audit的问题。