我爱编程

Oracle修改字符集

2018-05-10  本文已影响0人  之行Journey

背景:公司给更换了配置较高的笔记本,所以一切软件又要重新安装了,也是又一次翻着百度安装Oracle,技术不到家也好,保险也罢,我实在是怕错了一步,又要卸载了从头再来,卸载干净Oracle实在是太恶心。在其中的一步,由于我忘记原来备份的数据库是以什么字符集存储的,就手贱的把正在安装的字符集更换成了“UTF8”,而原来的字符集是默认的,so,就有了这篇文章。原谅小白昏头昏脑的这一波操作。


修改服务端数据库字符集

由于我的数据端本身就是在自己的电脑上安装着,所以就不存在什么远程操作了。倘若要修改虚拟机或是其他PC上的数据库字符集,那还是要SSH到远程位置进行操作。

  1. 查询目前数据库所使用的字符集(可直接在plsql中执行以下语句):

select * from V$NLS_PARAMETERS;

其中查询结果中 “NLS_CHARACTERSET” 的值即为目前所使用的,大部分都为“ZHS16GBK”或“AL32UTF8”的其中一种。我的结果如下图(我已经修改回来了):

查询结果.png
原来的值为“AL32UTF8”,我要改成图中的结果。
  1. 修改字符集(将“AL32UTF8”更改为“ZHS16GBK”)
    其实,平常我们执行sql等基本已经熟悉了plsql客户端的方式,但这个修改是要在cmd命令行中进行的。
  1. 修改环境变量。
    我使用的是Windows环境,所以直接添加系统变量。
    变量名称:NLS_LANG;
    变量值:SIMPLIFIED Chinese_CHINA.ZHS16GBK(你修改的值);

这样服务端的数据库字符集就修改完成了。

修改客户端数据库字符集

客户端的字符集就不涉及到数据库的命令了,主要是Oracle客户端与数据库内置不一致导致的,修改安装数据库时的注册表就可以。

这样客户端的字符集也设置完毕了。

目前字符集是设置完毕,可是原来是GBK的数据导入到了UTF8字符集的数据库里,再改回来也还是乱码,只能重新导入dmp备份文件了。下一篇就是总结的Oracle导入dmp文件的内容。
PS:目前自认技术还差的很远很远,几乎算是小白一个,所以,记录这些小的知识点不光是为了以后自己翻起来方便,而且对自己也是一种成长,也希望能帮到跟我一样的小白。我热爱这个行业,享受创造的过程,所以才需要更努力去见识更大的天空。知识浅显,还请各位莫要取笑。


参考资料:Fred、的窃窃私语博客


  1. 在这种模式下,服务器端只有拥有dba角色的用户和具有restrict session权限的用户才能连接数据库;在远程无论拥有什么角色都无法连接。在数据库做运维(变更)的情况下且不想其他会话连接到数据库,那么可以使用此种方式,避免其他用户连接。

上一篇 下一篇

猜你喜欢

热点阅读