加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Oracle 不同字符集(中英文字符集)直接转换查询,解决中文乱码

发布时间:2020-12-12 14:18:42 所属栏目:百科 来源:网络整理
导读:Oracle不同字符集直接相互查询,中文出现乱码太麻烦了! select * from nls_database_parameters 能查询数据库字符集、版本等信息 //select * from nls_database_parameters where parameter in('NLS_CHARACTERSET','NLS_NCHAR_CHARACTERSET'); 对方为: NLS

Oracle不同字符集直接相互查询,中文出现乱码太麻烦了!

select * from nls_database_parameters 能查询数据库字符集、版本等信息

//select * from nls_database_parameters where parameter in('NLS_CHARACTERSET','NLS_NCHAR_CHARACTERSET');

对方为: NLS_CHARACTERSET ZHS16GBK
NLS_NCHAR_CHARACTERSET AL16UTF16

己方为:NLS_CHARACTERSET WE8ISO8859P1
NLS_NCHAR_CHARACTERSET AL16UTF16

解决方法:

1、在对方数据库建立视图:将中文字段用utl_raw.cast_to_raw转换

CREATE OR REPLACE VIEWv_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),'WE8ISO8859P1') chinese_field fromv_view@db_link_name;


这样实时查询就不会出现乱码了。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读