不同字符集数据库之间转码办法 以WE8ISO8859P1转到ZHS16GBK为例
2010-07-28 22:41
351 查看
今天要和一个数据库做人员基础数据同步,对方提供了连接串,结果连上去以后,发现查询对方的中文数据时都显示乱码,因此百度google了一通,其中有查到如下链接的帖子:
http://kennyblues.itpub.net/post/31846/455855
通过帖子中的办法,没有成功,因此基于它的实现方法,自己摸索,如下方法实现了正常显示
select * from nls_database_parameters 能查询数据库字符集、版本等信息
对方数据库:
NLS_CHARACTERSET 为 WE8ISO8859P1
NLS_NCHAR_CHARACTERSET 为 UTF8
本方数据库:
NLS_CHARACTERSET 为 ZHS16GBK
NLS_NCHAR_CHARACTERSET 为 AL16UTF16
实现方法:
1、在对方数据库建立视图:将中文字段用utl_raw.cast_to_raw转换
CREATE OR REPLACE VIEW v_view (
chinese_field
) AS
SELECT Utl_Raw.cast_to_raw(chinese_field) remark FROM table_name;
2、在本地数据库使用DBLINK直接查询
select convert(utl_raw.cast_to_varchar2(chinese_field), 'ZHS16GBK') chinese_field from v_view@db_link_name;
http://kennyblues.itpub.net/post/31846/455855
通过帖子中的办法,没有成功,因此基于它的实现方法,自己摸索,如下方法实现了正常显示
select * from nls_database_parameters 能查询数据库字符集、版本等信息
对方数据库:
NLS_CHARACTERSET 为 WE8ISO8859P1
NLS_NCHAR_CHARACTERSET 为 UTF8
本方数据库:
NLS_CHARACTERSET 为 ZHS16GBK
NLS_NCHAR_CHARACTERSET 为 AL16UTF16
实现方法:
1、在对方数据库建立视图:将中文字段用utl_raw.cast_to_raw转换
CREATE OR REPLACE VIEW v_view (
chinese_field
) AS
SELECT Utl_Raw.cast_to_raw(chinese_field) remark FROM table_name;
2、在本地数据库使用DBLINK直接查询
select convert(utl_raw.cast_to_varchar2(chinese_field), 'ZHS16GBK') chinese_field from v_view@db_link_name;
相关文章推荐
- Oracle 不同字符集(中英文字符集)直接转换查询,解决中文乱码,以ZHS16GBK转为WE8ISO8859P1为例
- Oracle数据迁移:从存储了中文的但字符集为WE8ISO8859P1数据库导入数据到字符集为ZHS16GBK的数据库
- 转: Linux 下修改oracle 的字符集:WE8ISO8859P1 修改为 ZHS16GBK
- 转: Linux 下修改oracle 的字符集:WE8ISO8859P1 修改为 ZHS16GBK
- Linux 下修改oracle 的字符集:WE8ISO8859P1 修改为 ZHS16GBK
- oracle的字符集:WE8ISO8859P1 , ZHS16GBK
- 将US7ASCII 字符集的数据转到ZHS16GBK 字符集数据库
- Linux 下修改Oracle 的字符集:WE8ISO8859P1 修改为 ZHS16GBK
- 字符集为ZHS16GBK的数据库导入到字符集为AL32UTF8的数据库
- 转-【exp/imp】将US7ASCII字符集的dmp文件导入到ZHS16GBK字符集的数据库中
- 不同字符集的数据库之间的数据迁移问题
- ZHS16GBK的数据库导入到字符集为AL32UTF8的数据库
- 【exp/imp】将US7ASCII字符集的dmp文件导入到ZHS16GBK字符集的数据库中
- plsql 登录后,提示数据库字符集(AL32UTF8)和客户端字符集(ZHS16GBK)不一致
- plsql数据库异常---plsql 登录后,提示数据库字符集(AL32UTF8)和客户端字符集(ZHS16GBK)不一致
- 【exp/imp】将US7ASCII字符集的dmp文件导入到ZHS16GBK字符集的数据库中
- ORACLE11g数据库字符集从ZHS16GBK转为UTF8遗留问题的解决
- 不同数据库之间表数据的copy及CPY 0012错误的解决办法
- Win10 PLSQL 登录后,提示数据库字符集(AL32UTF8)和客户端字符集(ZHS16GBK)不一致
- Oracle817 版本 不同字符集之间的数据库导入