row类型存储unicode(AL32UTF8)字符集的16位数据,要在oracle中显示出对应的中文,不知如显示,试过select utl_raw.cast_to_varchar2(raw_col) from test_raw;(utl_raw.cast_to_varchar2)函数不行,能否在oracle中实现?还是要写函数包来实现??真心求教!!!

解决方案 »

  1.   

    还是不行,,
    SQL> select convert(raw_col,'ZHS16GBK','ZHS16GBK') from test_raw;CONVERT(RAW_COL,'ZHS16GBK','ZHS16GBK')
    -----------------------------------------------------------------------
    00
    23FC
    0FFFFFFFFFFF
    61
    61
    426F62313233
    E4B8ADE69687313233已选择7行。
      

  2.   

    SQL> select convert(raw_col,'ZHS16GBK','AL32UTF8') from test_raw;CONVERT(RAW_COL,'ZHS16GBK','AL32UTF8')
    -----------------------------------------------------------------
    00
    23FC
    0FFFFFFFFFFF
    61
    61
    426F62313233
    E4B8ADE69687313233
    还是不行,是否还有别的原因,,??
      

  3.   

    给的convert只是字符集间的转换,不是字符代码转到汉字,,要理解问题,!!
      

  4.   

    convert(utl_raw.cast_to_varchar2(raw_col),'...','...')convert和utl_raw要配合使用.
      

  5.   

    还是不行的,原因是utl_raw.cast_to_varchar2(raw_col)出来就是乱码了,不管源字符集是什么都没法转过目标字符集了,还有一中方法是导出来,在导入新的字符集但这样会丢失数据,也不方便,因为数据太多,是T级的存蓄,!!!
    有弄过的哥们出来说说吧!!!对了给你加满分!!!!!!!!!!!!!!!!!!!!!!!
      

  6.   

    字符集问题,看看这个
    http://www.itpub.net/276524,1.html
      

  7.   

    最近我也遇到这个问题, 正在解决中.
    加我msn: [email protected]
      

  8.   

    看来greeff(石头) 又误会我的意思了,呵呵,谢谢,,
    记着,现在存的是16进制的数字,如何让他中文显示,视乎不是数据库字符的问题了,因该是编码转化的问题了,像http://www.itpub.net/276524,1.html得太多了,还是不能解决,请各位侠士大胆解决翻案!!!!me的QQ 149429832    MSN [email protected]
      

  9.   

    试试这样
    utl_raw.cast_to_varchar2( utl_raw.convert(raw_col,to_charset,to_charset) )
    注意要写对来源字符集和目标字符集,目标字符集要是你当前数据库的字符集,否则转换出来的varchar2会是乱码
      

  10.   

    utl_raw.cast_to_varchar2( utl_raw.convert(raw_col,from_charset,to_charset) )
      

  11.   

    搞错顺序了
    utl_raw.cast_to_varchar2( utl_raw.convert(raw_col,to_charset,from_charset) )