Org.Apache.calcite.runtime.CalciteException:无法在字符集"ISO-8859-1"中编码“全国" [英] Org.Apache.calcite.runtime.CalciteException: Failed to encode '全国' in character set 'ISO-8859-1'

查看:401
本文介绍了Org.Apache.calcite.runtime.CalciteException:无法在字符集"ISO-8859-1"中编码“全国"的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

select
t1.city_name
from
(
        select
        '全国' as city_name
        from
        stg.t_vip

        union all

        select
                cc.city_name
        from
                stg.t_city_config cc
        join
                stg.t_vip v
        on
                v.city_id = cc.city_id
) t1
full join
(
 select
 '全国' as city_name
   from
     stg.t_vip_trade
 ) t2
on
t1.city_name = t2.city_name;

select
t1.city_name
from
(
        select
        '全国' as city_name
        from
        stg.t_vip

        union all

        select
                cc.city_name
        from
                stg.t_city_config cc
) t1
full join
(
 select
 '全国' as city_name
   from
     stg.t_vip_trade
 ) t2
on
t1.city_name = t2.city_name;

为什么第二个SQL可以正常执行,而第一个SQL则发布错误:

Why the second SQL is OK while the first one post an error:

Failed to encode '全国' in character set 'ISO-8859-1'

推荐答案

可以添加以下代码:

System.setProperty("saffron.default.charset",ConversionUtil.NATIVE_UTF16_CHARSET_NAME);System.setProperty("saffron.default.nationalcharset",ConversionUtil.NATIVE_UTF16_CHARSET_NAME);System.setProperty("saffron.default.collat​​ion.name",ConversionUtil.NATIVE_UTF16_CHARSET_NAME +"$ en_US");

System.setProperty("saffron.default.charset",ConversionUtil.NATIVE_UTF16_CHARSET_NAME); System.setProperty("saffron.default.nationalcharset",ConversionUtil.NATIVE_UTF16_CHARSET_NAME); System.setProperty("saffron.default.collation.name",ConversionUtil.NATIVE_UTF16_CHARSET_NAME + "$en_US");

这篇关于Org.Apache.calcite.runtime.CalciteException:无法在字符集"ISO-8859-1"中编码“全国"的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆