Microsoft SQL Server不正确的功能是在ODI(Sunopsis)集成接口针对中文(或其他多字节字符)数据定义的过滤器_Tomcat, WebLogic及J2EE讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  Tomcat, WebLogic及J2EE讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 4682 | 回复: 0   主题: Microsoft SQL Server不正确的功能是在ODI(Sunopsis)集成接口针对中文(或其他多字节字符)数据定义的过滤器        下一篇 
masy
注册用户
等级:少校
经验:1234
发帖:182
精华:0
注册:2011-11-4
状态:离线
发送短消息息给masy 加好友    发送短消息息给masy 发消息
发表于: IP:您无权察看 2011-12-26 12:05:14 | [全部帖] [楼主帖] 楼主

Oracle Data Integrator - Version: 3.2.03


这个问题可能发生在当前的任何平台。

症状

它出现在Microsoft SQL Server关于多数据处理的情况:

例子:

在ODI(Sunnopsis)的 Microsoft SQL Server用户可以看到和直接转换中文(或者其他多字节字符)数据但是增加一个过滤器对中文(或者其他多字节)数据集成接口出现不正确的功能。

注意:这个问题是少见的在一个single-language环境(当中文或英文之一在独占使用时)和只能发生在一个同时使用两种语言的环境。

原因;

Mircrosoft SQL Server操作的ACTIVE数据库的参数设置条件。例如,如果一个数据库中使用的是中文的排序规则设置和在其他数据库中使用西方的排序规则设置,然后下面的查询将返回不同的结果是取决于你所连接的那个数据库:

select
datalength('<chinese character>') as len_string,
datalength(N'<chinese character>') as len_unicode_string


解决方案

通常情况下,这样的问题可避免强制ODI(Sunopsis) 使用任何的字符串数据元素作为一个unicode对象。这是将一个大写字母N在前面字符串中实现。例如:
N是一个unicode字符串’但是这个字符串使用当前操作系统的代码页面’。

两者选一的解决方案:


当使用Microsoft JDBC 驱动程序时,你可能迫使ODI连接到指定的数据库使用JDBC数据服务器JDBC选项卡上设置的URL,以强制的ODI使用相关的排序规则设置。

例如:

jdbc:microsoft:sqlserver://myHost:1433;SelectMethod=cursor;databaseName=MyChineseDB


请注意在iNet 为Microsoft SQL Server的JDBC驱动程序指定一个字符集正确处理多字节数据的其他方式:

jdbc:inetdae7:myHost:1433
jdbc:inetdae7:myHost:1433?charset=Cp950
jdbc:inetdae7:myHost:1433?database=MyChineseDB
jdbc:inetdae7:myHost:1433?database=MyDb&language=us_english




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论