共计 1574 个字符,预计需要花费 4 分钟才能阅读完成。
在 Oracle 下客户端中设置的字符集应于服务端保持一致,否则会出现乱码,而 Oracle 的客户端无论是在 Windows/DOS 系统下还是 Unix 系统下都可以通过环境变量 NLS_LANG 来加以控制,至于操作也很简单,在这里就不做过多的说明,在这里主要说一下如何在 Oracle 的服务端下如何正确的修改字符集。在修改的时候建议使用 sysdba 身份验证,要注意的是新修改的字符集必须为旧字符集的超集,不然 Oracle 上修改字符集会报 ORA-12712 错误。而在平时可以查询系统视图得知当前 Oracle 数据库中的字符集设置情况,如下:
SELECT * FROM v$nls_parameters WHERE PARAMETER IN (‘NLS_LANGUAGE’,’NLS_TERRITORY’,’NLS_CHARACTERSET’); #通过 NLS_LANGUAGE,NLS_TERRITORY,NLS_CHARACTERSET 这三个变量查看
SELECT USERENV (‘language’) FROM DUAL;# 或者通过 USERENV 函数也可以取得
操作方法也很简单:
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount# 进入维护模式
ORACLE instance started.
Total System Global Area 4275781632 bytes
Fixed Size 2260088 bytes
Variable Size 905970568 bytes
Database Buffers 3355443200 bytes
Redo Buffers 12107776 bytes
Database mounted.
SQL> alter system enable restricted session;# 在维护模式的基础上再开启 restricted,防止其他用户登录连接
System altered.
SQL> alter system set job_queue_processes=0;# 关闭系统的触发器
System altered.
SQL> alter system set aq_tm_processes=0;# 指定队列监视进程个数,缺省是 0,如果没有改过可以不加
System altered.
SQL> alter database open;# 打开数据库
Database altered.
SQL> alter database character set internal_use al32utf8;# 进行字符集修改
Database altered.
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup# 最后重启修改字符集生效
ORACLE instance started.
Total System Global Area 4275781632 bytes
Fixed Size 2260088 bytes
Variable Size 905970568 bytes
Database Buffers 3355443200 bytes
Redo Buffers 12107776 bytes
Database mounted.
Database opened.
更多 Oracle 相关信息见 Oracle 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=12
本文永久更新链接地址 :http://www.linuxidc.com/Linux/2017-12/149915.htm