Linux下oracle插入 导入 中文记录显示为问号问题及解决办法

博客介绍了在Linux环境下,Oracle数据库中出现中文记录显示为问号的问题及其解决方法。重点讨论了字符集的概念,强调数据库字符集一旦创建后无法更改,需要在设计初期就考虑。同时提到了NLS_LANG变量在不同操作系统下的设置位置,以及其格式和作用,如`NLS_LANG = language_territory.charset`,并指出charset部分对于解决中文乱码至关重要。
摘要由CSDN通过智能技术生成
               

Blog Transferred to: http://www.kanhua.org


字符集

oracle官方关于字符集和NLS_LANG的解答:http://www.oracle.com/technology/tech/globalization/htdocs/nls_lang%20faq.htm

       首先要明确什么是字符集?字符集是一个字节数据的解释的符号集合,有大小之分,有相互的包括关系,如us7ascii就是zhs16gbk的子集,从us7ascii到zhs16gbk不会有数据解释上的问题,不会有数据丢失,Oracle对这种问题也要求从子集到超集的导出受支持,反之不行。在所有的字符集中utf8应该是最大,因为它基于unicode,双字节保存字符(也因此在存储空间上占用更多),。

    其次,一旦数据库创建后,数据库的字符集是不能改变的。因此,在设计和安装之初考虑使用哪一种字符集是十分重要的。数据库字符集应该是操作系统本地字符集的一个超集。存取数据库的客户使用的字符集将决定选择哪一个超集,即数据库字符集应该是所有客户字符集的超集。

nls_lang变量:

Windows下:在系统的环境变量里和注册表里可以找到进行设置

Linux下:在oracle用户下的.bash_profile文件里进行设置

NLS_LANG格式:
NLS_LANG = language_territory.charset
有三个组成部分(语言、地域和字符集),每个成分控制了NLS子集的特性。其中&#

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值