FM中手写SQL包含的中文字符在报表中变成乱码
0
在FM中使用native SQL 来做字段处理,
case when to_number(to_char(sysdate,'yyyy'))-to_number(to_char(DM_CUSTOMER_D.BIRTH_DATE,'yyyy'))<18 then '18岁以下' when to_number(to_char(sysdate,'yyyy'))-to_number(to_char(DM_CUSTOMER_D.BIRTH_DATE,'yyyy'))<=35
and to_number(to_char(sysdate,'yyyy'))-to_number(to_char(DM_CUSTOMER_D.BIRTH_DATE,'yyyy'))>=18 then '18-35岁' when to_number(to_char(sysdate,'yyyy'))-to_number(to_char(DM_CUSTOMER_D.BIRTH_DATE,'yyyy'))<=60
and to_number(to_char(sysdate,'yyyy'))-to_number(to_char(DM_CUSTOMER_D.BIRTH_DATE,'yyyy'))>=36 then '36-60岁' when to_number(to_char(sysdate,'yyyy'))-to_number(to_char(DM_CUSTOMER_D.BIRTH_DATE,'yyyy'))>60 then '60岁以上' end as AGE,
在FM中测试正常,但是发布Package后,在报表中显示为乱码,如图。但其他从数据库中获取的中文字段都正常显示,只有在FM 中手写的SQL会有问题。
请大神指教。
case when to_number(to_char(sysdate,'yyyy'))-to_number(to_char(DM_CUSTOMER_D.BIRTH_DATE,'yyyy'))<18 then '18岁以下' when to_number(to_char(sysdate,'yyyy'))-to_number(to_char(DM_CUSTOMER_D.BIRTH_DATE,'yyyy'))<=35
and to_number(to_char(sysdate,'yyyy'))-to_number(to_char(DM_CUSTOMER_D.BIRTH_DATE,'yyyy'))>=18 then '18-35岁' when to_number(to_char(sysdate,'yyyy'))-to_number(to_char(DM_CUSTOMER_D.BIRTH_DATE,'yyyy'))<=60
and to_number(to_char(sysdate,'yyyy'))-to_number(to_char(DM_CUSTOMER_D.BIRTH_DATE,'yyyy'))>=36 then '36-60岁' when to_number(to_char(sysdate,'yyyy'))-to_number(to_char(DM_CUSTOMER_D.BIRTH_DATE,'yyyy'))>60 then '60岁以上' end as AGE,
在FM中测试正常,但是发布Package后,在报表中显示为乱码,如图。但其他从数据库中获取的中文字段都正常显示,只有在FM 中手写的SQL会有问题。
请大神指教。
没有找到相关结果
重要提示:提问者不能发表回复,可以通过评论与回答者沟通,沟通后可以通过编辑功能完善问题描述,以便后续其他人能够更容易理解问题.
1 个回复
hupingzhi - 大数据架构师 2013-08-22 回答
赞同来自: 子呆不呆 、梁勇
该乱码问题是由于Oracle客户端设置的NLS_LANG与数据库中字符集不一致导致,统一后问题消失。将来在配置客户端是需特别注意。