oracle字符集问题

字符集是指 客户端、服务端和加载数据的字符编码。

加载数据是指sql脚本、oracle备份文件等的字符编码。

 

一般来说,只要客户端 nls_lang 与 加载数据的编码相同,或包含加载数据的编码,则不会出现乱码。较为方便的做法是修改nls_lang,使其与加载数据编码一致。

解释:客户端 nls_lang 与加载数据的编码相同,或包含加载数据的编码,这样脚本中的中文就能被正确解释,无论服务器端编码是什么,都能被正确地转换和存储。查询时,oracle也能根据服务端和客户端的编码差异对数据进行转换并显示,不会出现乱码。

 

数据库服务端的字符集一般不修改,数据库创建以后,如果需要修改字符集,通常需要重建数据库,通过导入导出的方式来转换。

如果只是执行下面语句修改字符集:

ALTER DATABASE CHARACTER SET

这个命令在Oracle8时被引入Oracle,这个操作在本质上并不转换任何数据库字符,只是简单的更新数据库中所有跟字符集相关的信息。
这意味着,你只能在新字符集是旧字符集严格超集的情况下使用这种方式转换。

 

 

ps:

中文的 ansi 编码是 GBK。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值