scs*_*mon 9 sql-server linked-server informix sql-server-2016
经过大约 3 天的尝试,我无法创建从 SQL Server 2016 到 Informix 11.5 的链接服务器。我没有在其他版本(2008R2 等)上尝试过这个,因为我想先在测试环境中设置连接。
我做了什么
1) 将 IBM Informix指令与 OLE DB 提供程序一起使用,在其中我收到以下错误(无论我是否在提供程序字符串中使用 DNS):
无法为链接服务器“UCCX”初始化 OLE DB 提供程序“Ifxoledbc”的数据源对象。链接服务器“UCCX”的 OLE DB 提供程序“Ifxoledbc”返回消息“EIX000: (-23197)”数据库区域设置信息不匹配”(Microsoft SQL Server,错误:7303)
DB Locale 是 en_US.57372
2)如本博客所述,使用 Microsoft OLE DB Provider for SQL Server返回错误:
命名管道提供程序:无法打开与 SQL Server 的连接。链接服务器 UCCX 的 OLE DB 提供程序 SQLNCLI11 返回消息“登录超时已过期” 链接服务器 UCCX 的 OLE DB 提供程序 SQLNCLI11 返回消息“与 SQL Server 建立连接时发生与网络相关或特定于实例的错误。未找到服务器或不可访问。检查实例名称是否正确,以及 SQL Server 是否配置为允许远程连接。链接服务器 UCCX 的 SQLNCLI11 返回消息“连接字符串属性无效”
我几乎没有使用 Informix 的经验,这应该是显而易见的,这不是本地安装,它是 Cisco 实例,正如您可能从我使用的博客中收集到的那样。任何意见,将不胜感激。
小智 6
我们做了一个类似的噩梦,特别是连接到多个 Informix 环境的问题。我有几个 Informix 实例需要链接到单个 SQL Server 实例以用于仓储目的,我们常驻的 SME 告诉我这是不可能的;每个服务器只能引用一个 Informix 实例。
我会一直收到和你一样的错误,而且我在网上挖掘出来的任何东西都没有证明是有帮助的。
最终,该解决方案有几个部分,您已经完成了前几个部分:
IBM Informix ODBC Driver
必须安装在数据库服务器上。链接服务器设置的技巧是使用以下内容(代码块中的项目是文字):
Microsoft OLE DB Provider for ODBC Drivers
Ifxoledbc
{IBM INFORMIX ODBC DRIVER}
如果您更喜欢手动 SQL 类型的人,请参见下文。提供者字符串被拉入一个变量中,仅用于内联注释,同时仍然具有可执行代码。根据需要修改:
DECLARE @provider NVARCHAR(4000);
SET @provider = N'Driver={IBM INFORMIX ODBC DRIVER};'
+ N'DATABASE= ;' --Informix DB name
+ N'HOST= ;' --Informix Hostname or IP adddress
+ N'SERVICE= ;' --Informix service name, ex. ifx1_tcp1
+ N'PROTOCOL= ;' --Informix protocol, ex. onsoctcp
+ N'SERVER= ;' --Informix server, ex. ifx1
+ N'DB_LOCALE=en_US.819; CLIENT_LOCALE=en_US.819;'; --Change to your locale, as needed
EXEC master.dbo.sp_addlinkedserver
@server = N'UCCX', --Linked Server system name
@srvproduct=N'Ifxoledbc',
@provider=N'MSDASQL',
@datasrc=N' ', --Your System DSN Name
@provstr= @provider;
Run Code Online (Sandbox Code Playgroud)
由于您正在处理单个实例,因此只需匹配用于创建系统 DSN 的值就足够了。如果您需要为其他实例添加额外的链接服务器,可以按照上述完全相同的格式完成,无需额外的 DSN 条目。
我希望这有帮助。
归档时间: |
|
查看次数: |
8437 次 |
最近记录: |