查oracle客户端数据库字符集,Oracle数据库服务器端和客户端字符集查询与修改
1、查看数据库服务器字符集select*fromnls_database_parameters;2、查看数据库实例的字符集(由参数文件决定,不受环境变量影响)并不是网上所说为客户端的字符集select*fromnls_instance_parameters;修改nls_instance_parameters步骤执行下面的语句 查看nls_lang参数是否为静态参数SELECTNA...
1、查看数据库服务器字符集select * from nls_database_parameters ;
2、查看数据库实例的字符集(由参数文件决定,不受环境变量影响)并不是网上所说为客户端的字符集select * from nls_instance_parameters ;
修改nls_instance_parameters步骤
执行下面的语句 查看nls_lang参数是否为静态参数SELECT NAME, VALUE, ISSYS_MODIFIABLE FROM v$parameter a WHERE a.NAME like 'nls_%'
ISSYS_MODIFIABLE: 为 FALSE 则在系统级别修改的时候需要加上 scope=spfile 重启数据库后参数生效alter system set nls_language='AMERICAN' scope=spfile;
alter system set nls_territory='AMERICA' scope=spfile;
SHUTDOWN IMMEDIATE;
STARTUP;
3、查看当前客户端的字符集
默认继承nls_instance_parameters的值 但若环境变量/注册表/ALTER SESSION 指定了值,则使用指定值
优先级:ALTER SESSION>用户环境变量>系统环境变量>注册表(HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraDb10g_home1的NLS_LANG 键)select userenv('language') from dual;
等价于SELECT * FROM V$NLS_PARAMETERS;
4、当前会话的字符集(无特殊设置则集成 V$NLS_PARAMETERS的值)SELECT * FROM NLS_SESSION_PARAMETERS;
修改当前会话的字符集(立即生效,同时影响上面两条语句的查询结果) 'SIMPLIFIED CHINESE' 'AMERICAN'alter session set NLS_LANGUAGE='AMERICAN';
5、修改SERVER端字符集(不建议使用)conn / as sysdba;
SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
ALTER SYSTEM ENABLE RESTRICTED SESSION;
ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
ALTER SYSTEM SET AQ_TM_PROCESSES=0;
ALTER DATABASE OPEN;
---修改字符集且跳过超子集检测 AL32UTF8 ZHS16GBK
ALTER DATABASE CHARACTER SET INTERNAL_USE AL32UTF8;
SHUTDOWN IMMEDIATE;
STARTUP;

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐
所有评论(0)