UniteModule表里有个name的字段VARCHAR2(400)类型
我要将name转换成NVARCHAR2类型
但是
运行     
select b.name,cast(b.NAME AS NVARCHAR2(400)) as name2 from UniteModule b 
后,部分数据会发生字符丢失的情况
比如 
name              name2
孟兰节              孟兰节 
苦难耶穌圣像巡游    苦难耶穌圣像巡游 
醉龙节     
民俗风              民俗风情
澳门年              澳门年俗
何解?

解决方案 »

  1.   

    select * From nls_database_parameters
    结果贴出来还有就是你贴出的执行结果有问题吧   民俗风怎么变成了民俗风情呀   怎么变多了  没有问题吗?把正确的执行结果贴出来
      

  2.   

    晕,写反了,
    name                           name 
    孟兰节                             孟兰节   
    苦难耶穌圣像巡游                   苦难耶穌圣像巡游   
    醉龙节           
    民俗风情                           民俗风 
    澳门年俗                           澳门年是这样的,转换后少了部分字符,有的又正常select   *   From   nls_database_parameters 
    结果如下
    1 NLS_LANGUAGE AMERICAN
    2 NLS_TERRITORY AMERICA
    3 NLS_CURRENCY $
    4 NLS_ISO_CURRENCY AMERICA
    5 NLS_NUMERIC_CHARACTERS .,
    6 NLS_CHARACTERSET AL32UTF8
    7 NLS_CALENDAR GREGORIAN
    8 NLS_DATE_FORMAT DD-MON-RR
    9 NLS_DATE_LANGUAGE AMERICAN
    10 NLS_SORT BINARY
    11 NLS_TIME_FORMAT HH.MI.SSXFF AM
    12 NLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AM
    13 NLS_TIME_TZ_FORMAT HH.MI.SSXFF AM TZR
    14 NLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI.SSXFF AM TZR
    15 NLS_DUAL_CURRENCY $
    16 NLS_COMP BINARY
    17 NLS_LENGTH_SEMANTICS BYTE
    18 NLS_NCHAR_CONV_EXCP FALSE
    19 NLS_NCHAR_CHARACTERSET AL16UTF16
    20 NLS_RDBMS_VERSION 10.2.0.1.0
      

  3.   

    6 NLS_CHARACTERSET AL32UTF8 
    19 NLS_NCHAR_CHARACTERSET AL16UTF16 这两个字符集是不一样的,也就是说在UTF8下的字符在UTF16下可能并不认识具体字符集哪些兼容哪些不兼容这个我就不太清楚了