字符集转换"/>
乱码中文在Oracle数据库字符集转换
以西欧字符集和UTF8字符集为例
在oracle中,convert函数是用来转字符集转换的。
语法:CONVERT( char, dest_char_set [ ,source_char_set] );
char的参数是要转换的值。它可以是任何的数据类型CHAR ,VARCHAR2 ,NCHAR ,NVARCHAR2 ,CLOB或NCLOB 。 dest_char_set参数是char转换的字符集的名称。
source_char_set参数是char是存储在数据库中的字符集,其中的名称。.默认值是数据库的字符集。
1、西欧字符集与UTF8和ZHS16GBK字符集不同,占用字节数也不同。使用16进制转换时产生的数据存在差异。因此,如果作字符集转换,必须先将其转换为现在字节数据。然后再转换。当字节达不到时,数据库自动补码。保证与新的数据字节一致。
2、然后创建function函数,将转换的16进制数据进行拆分为字符串,存储到临时表内。
3、然后再将数据同步到目标数据库
4、将数据转换为中文。
例如:
1、将数据转换为16进制
select utl_raw.cast_to_raw(栏位) from dual;
2、将16进制转换为字符串
select CONVERT(utl_raw.cast_to_varchar2("16进制数"),'ZHS16GBK','UTF8') from dual;
将西欧字符集WE8DEC转换为UTF8字符集并转换为16进制数据
1、先将数据转换为UTF8数据。
select mcode, chisplit(utl_raw.cast_to_raw(convert('中国','utf8','zhs
更多推荐
乱码中文在Oracle数据库字符集转换
发布评论