oracle英文字符集问题
select substr('2007年11月28日10:00中华人民共和国中华人民共和国',20,20) from dual;显示是'中华人民共和国中华人',
但select substr('2007年11月28日10:00中华人民共和国中华人民共和国',21,20)却是乱码,
原因分析:主要由于英文字符集中,中文被识别为二个半解字符组成,
我如何很好判断是该从什么位置开始取值才不显示乱码。也就是substr(string,????,20)才不显示乱码。

解决方案 »

  1.   

    考虑使用NVARCHAR来解决这个问题比较好,可以在英文字符集里使用中文,且不会出现半个字符问题
      

  2.   

    我测试了还是不行哦
    declear
    c nvarchar2(1000);
    begin
    c:='123中华人民共和国';
    insert into a (a) values(substr(c,5,6));
    insert into a (a) values(substr(c,5,6));
    end;
    这样的结果还是乱码呀。
      

  3.   

    我的没有问题,应该oracle数据库的字符集,你用默认的那个z...什么东西就不会有问题了
      

  4.   

    由于此数据库还连接有多个oracle数据库(其它数据库全是英文字符集),不能设置为中文的字符集。此问题该怎么解决呢?
      

  5.   

    胡说,我测试的没有乱码,肯定是你oracle字符集的问题,我的是utf——8