oracle数据库总结(十八)--修改oracle数据库编码格式

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 20:48   2241   0

目录

1说明

2oracle客户端编码格式

2.1查询客户端编码格式

2.2修改客户端编码格式

3oracle服务端编码格式

3.1查看编码格式

3.2修改编码格式

4补充


1说明

1:本文部分内容来自:https://www.cnblogs.com/jpfss/p/11164896.html

2:本文中未特别说明环境都为linux,如是Windows类似。因只是记录工作过程中亲测的语句,方便以后回忆,自己电脑上并未有环境来附带截图来对语句进行详细说明。。。。抱歉

3: 在linux环境中创建了一个用户名为oracle的用户,该oracle服务端和客户端都安装在该用户下。

4:oracle数据编码格式分为oracle客户端编码格式与oracle服务端编码格式 ,客户端可单独安装在另外一台不相关的linux或者Windows系统上;安装oracle服务端时会自动安装oracle客户端。

5:默认当前oracle客户端编码格式都为ZHS16GBK。而java web项目中的代码都是需要utf-8格式。现将oracle数据编码格式改为

AL32UTF8。

6:修改编码格式对业务和原有数据有影响请慎重啊,小老弟

2oracle客户端编码格式

2.1查询客户端编码格式

使用root用户切换到oracle用户

su - oracle

查看当前客户端编码格式

env|grep NLS

有些博客使用该方法查看oracle编码格式:暂不理解该做法。但上面语句时亲自测试过的

2.2修改客户端编码格式

vi .profile 即修改文件中的变量名中带有NLS关键字的变量值,为AL32UTF8。

source .profile 是修改配置生效。

退出oracle用户再查询一次客户端编码格式是否有变化。

已亲测。

3oracle服务端编码格式

3.1查看编码格式

使用root用户切到oracle用户。使用syadba用户登录oracle

sqlplus / as sysdba

查询编码格式

select * from nls_database_parameters where parameter ='NLS_CHARACTERSET';

3.2修改编码格式

  • 使用root用户切到oracle用户。使用syadba用户登录oracle

    sqlplus / as sysdba

  • 关闭数据库

shutdown immediate;

  • 以mount打来数据库,

startup mount

  • 设置session(主要是关闭当前seesion回话,即在变更数据库编码格式时不允许其他用户操作数据库)

    • SQL>ALTER SYSTEM ENABLE RESTRICTED SESSION;
    • SQL> ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
    • SQL> ALTER SYSTEM SET AQ_TM_PROCESSES=0;
  • 启动数据库

    • alter database open;
  • 修改字符集

    • ALTER DATABASE character set INTERNAL_USE AL32UTF8;
  • 关闭,重新启动

    • SQL>shutdown immediate;
    • SQL> startup

4补充

见附件

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP