【问题标题】:Sql server linked server to Oracle return ??? instead of charsSql server 链接服务器到 Oracle 返回 ???而不是字符
【发布时间】:2016-08-31 11:05:16
【问题描述】:

我正在使用 Oracle 11g 和 Sql Server 2008 R2 在 sql Server 中,我有一个连接到 Oracle 机器的链接服务器。 在 Sql Server 中,我使用 openquery 从 Oracle 中的表中进行选择。 每当 Oracle 中有 char 列时,我都会得到所有数据,例如 ??????? 我尝试在链接服务器属性窗口中修改排序规则 - 仍然得到相同的??????

我该如何解决这个问题?

这里有更多关于配置的细节:

来自 Oracle nls 参数的详细信息:

NLS_LANGUAGE    AMERICAN

NLS_TERRITORY   AMERICA

NLS_ISO_CURRENCY    AMERICA

NLS_NUMERIC_CHARACTERS  .,

NLS_CHARACTERSET    IW8ISO8859P8

NLS_SORT    BINARY

NLS_COMP    BINARY

NLS_LENGTH_SEMANTICS    BYTE

NLS_NCHAR_CHARACTERSET  AL16UTF16

链接服务器具有以下选项:

'collation compatible', 'false'

'data access','true'

'dist', 'false'

'pub', 'false'

'rpc', 'false'

'rpc out', 'false'

'sub', 'false'

'connect timeout', '0'

'collation name', 'Hebrew_100_CI_AS'

'lazy schema validation', 'false'

'query timeout', '0'

'use remote collation', 'true'

'remote proc transaction promotion', 'true'

【问题讨论】:

    标签: oracle sql-server-2008 oracle11g linked-server openquery


    【解决方案1】:

    问题似乎是由于 NLS 参数 之间的不匹配造成的。您的 Oracle NLS_LANG = 'AMERICAN' 在 sql server 中显示类似 collation name = 'Hebrew_100_CI_AS' 的内容。尝试将两者设置相同。

    参考:PL/SQL Developer displays does not display Hebrew characters properly

    【讨论】:

      猜你喜欢
      • 2012-03-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-07
      • 1970-01-01
      • 2013-12-06
      • 2013-10-14
      相关资源
      最近更新 更多