oracle国际化

1.查看字符集

  select * from nls_database_parameters;

 

2.查看数据库按什么长度算

show parameter  nls_length_semantics;

 

3.查看数据显示的编码

select id,dump(name,1016) from t2;

 SQL> select * from t2;
 
ID                    NAME
--------------------- --------------------
123456789012345678901 李四
 
SQL> select id,dump(name,1016) from t2;
 
ID                    DUMP(NAME,1016)
--------------------- --------------------------------------------------------------------------------
123456789012345678901 Typ=1 Len=4 CharacterSet=ZHS16GBK: c0,ee,cb,c4

 

4.设置环境变量

 set nls_lang=语言种类_地区_字符集

  例如:set nls_language=French_France.UTF8

 

5. 相关视图

  nls_session_parameters

  v$nls_valid_values

  nls_instance_parameters

  nls_database_parameters

  v$nls_parameters

 

6.排序

 select * from t order by nlssort(name,'NLS_SORT=SCHINESE_PINYIN_M')

 

7.修改服务器编码

lsnrctl stop
sqlplus /as sysdba
update props$ set value$='ZHS16GBK' where name='NLS_CHARACTERSET';
update props$ set value$='AL16UTF16' where name='NLS_NCHAR_CHARACTERSET';
commit;
shutdown immediate;
startup mount;
alter system enable restricted session;
alter system set job_queue_processes=0;
alter database open;
alter database character set ZHS16GBK;
shutdown immediate;
startup mount;
alter system set job_queue_processes=1000;
alter database open;
exit;
lsnrctl start

sqlplus
/nolog
conn
/as sysdba
startup
conn sys
/sys as sysdba

查看客户端编码

select * from V$NLS_PARAMETERS where parameter = 'NLS_CHARACTERSET' ;

 

 6.字符集的区分

1.nls_language是服务器端的属性,显示服务器语言种类

2.nls_lang是客户端的属性,显示客户端语言种类,同Windows下注册表的nls_lang,

  oracle客户端也取所在本地环境的nls_lang

3.服务器端字符集

   select   *   from   nls_database_parameters,其来源于props$,是表示数据库的字符集。 

4.客户端字符集

  select   *   from   nls_instance_parameters,来源于v$parameter

 

5.会话字符集环境  

 select   *   from   nls_session_parameters,其来源于v$nls_parameters,表示会话自己 的设置,可能是会话的环境变量或者是alter   session完成,如果会话没有特殊的设置,将nls_instance_parameters一致。  
  客户端的字符集要求与服务器一致,才能正确显示数据库的非Ascii字符。如果多个设置存在的时候,alter   session>环境变量>注册表>参数文件  
  字符集要求一致,但是语言设置却可以不同,语言设置建议用英文。如字符集是zhs16gbk,则nls_lang可以是American_America.zhs16gbk。  

 

通过alter   database来修改字符集,但也只限于子集到超集   
  Startup   nomount;  
  Alter   database   mount   exclusive;  
  Alter   system   enable   restricted   session;  
  Alter   system   set   job_queue_process=0;  
  Alter   database   open;  
  Alter   database   character   set   zhs16gbk;  

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值