您的位置:首页 > 数据库 > Oracle

oracle 字符集

2015-08-13 09:52 507 查看
1.字符集参数

 

NLS_LANG=<language>_<territory>.<Clients Characterset>

language--oracle使用的语言

territory---货币和数字格式,星期、地区和日志计算习惯。

clients characterset 控制客户端应用程序使用的字符集,不同可能造成乱码

 

2.查看字符集

 

NLS_INSTANCE_PARAMETERS

数据库实例字符集,在新建数据库实例时指定,网上多误为客户端字符集

官方解释:NLS_INSTANCE_PARAMETERS lists NLS parameters of the instance.

 

NLS_DATABASE_PARAMETERS

数据库字符集,NLS_LANGUAGE,NLS_TERRITORY在数据库安装时指定,NLS_CHARACTERSET在数据库实例建立时指定

官方解释:NLS_DATABASE_PARAMETERS lists permanent NLS parameters of the database.

 

V$NLS_PARAMETERS

客户端字符集,受环境变量、参数文件、注册表影响。

另一种方法是 select userenv('language') from dual;

官方解释:V$NLS_PARAMETERS contains current values of NLS parameters.

 

NLS_SESSION_PARAMETERS

当前会话字符集,默认与客户端字符集相同。可通过alter session 更改,只在当前会话生效。

官方解释:NLS_SESSION_PARAMETERS lists NLS parameters of the user session.

 

3.修改字符集

客户端字符集

windows:

修改 cmd->regedit->HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ORACLE\KEY_OraDb10g_home1 下NLS_LANG(全局)

dos下set NLS_LANG=zh_CN.GB18030(当前session)

 

unxi :

修改/etc/sysconfig/i18n (全局)

e.g

LANG="en_US.UTF-8",

 

修改登录用户的.bash_profile (当前用户)

e.g 加入 export LANG=zh_CN.GB18030

 

命令行下export LANG=zh_CN.GB18030(当前session)

 

 

数据库字符集

(1)重建数据库

(2)只能在新字符集是旧字符集的严格超集情况下使用,若不是,将会报ora-12712错误。

步骤:

 

SQL>SHUTDOWN IMMEDIATE;

SQL>STARTUP MOUNT;

SQL>ALTER SYSTEM ENABLE RESTRICTED SESSION;

在数据库受限制的过程中,只有对数据库拥有RESTRICTED  SESSION权限的用户才能够连接到数据库。这种状态有利于对数据库进行备份,恢复,导入,导出等操作。

 

SQL>ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;

job_queue_processes参数,当设定该值为0的时候则任意方式创建的job都不会运行。

SQL>ALTER SYSTEM SET AQ_TM_PROCESSES=0;

AQ_TM_PROCESSES 控制队列信息与控制信息的实时监控,默认为1

SQL>ALTER DATABASE OPEN;

SQL>ALTER DATABASE CHARACTER SET ZHS16GBK;

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  oracle 字符集 乱码 NLS