辽宁本溪篮球队:Oracle学习笔记(16)字符语言环境
来源:百度文库 编辑:九乡新闻网 时间:2024/07/14 00:54:26
字符语言环境
Session级、OS环境变量:基于Client端的字符设置
Database级:Database在存储数据时的字符集(character set \national character set)
1.选择数据库的字符集模式
(1)单字节的字符集: 7-bit(128个符号)ASCII码、8-bit(256个符号)扩展ASCII码
可变宽度多字节字符集(1~3个字节之间:utf-8)、固定宽度多字节字符集 Unicode(AL32UFT8,AL16UTF16)
Database 字符集>依赖于OS字符集
(2)国际National字符集>Default(AL16UFT16)
sql>select parameter ,value frm nls_database_parmaeters
选择Oracle国际字符集的方法:空间重要还是性能重要?
AL16UTF16 性能方面重要、UTF8 空间重要。
选择Unicode 数据类型:假定支持多语言;包应用;性能(单字节数据库字符集使用固定长度国际字符集);使用windows客户端可以更好的支持UTF-16
2.基于语言的行为:使用初始化参数、环境变量和ALTER SESSION命令
(优先级:初始化参数>环境变量>ALTER SESSION)
环境变量:nls_date_fomat、nls_date_language、nls_sort、nls_numeric_characters、nls_currency、nls_iso_currency、nls_calendar
sql>alter session set nls_language='SIMPLIFIED CHINESE'; //简体中文
sql>select * from kong.authors; //命令执行后变成了中文
cmd: set nls_lang=AMERICAN_AMERICA.US7ASCII
sql>conn sys/admin1 as sysdba
sql>set wrap off
sql>set linesize 200
sql>select parameter,value from nls_instance_parameters;
sql>select * from nls_session_parameters;
sql>alter session set nls_language='SIMPLIFIED CHINESE'; //语言发生改变(nls_date_language、nls_sort)
sql>select * from nls_session_parameters;
sql>alter session set nls_territory=CHINA; //区域值发生改变(nls_currency、nls_iso_currency、nls_date_format、nls_numberic_characters)
sql>select * from nls_session_parameters;
sql>alter session set nls_currency='$';
sql>select * from nls_session_parameters;
sql>select sysdate from dual; //系统日期格式 29-4?
sql>alter session set nls_date_format='YYYY.MM.DD';
sql>select sysdate from dual; //2011.4.29
3.语言依赖性的应用程序对系统的影响
sql>execute DBMS_SESSION.set_nls('NLS_DATE_FORMAT','"YYYY.MM.DD"');
sql>alter session set nls_date_format='YYYY.MM.DD';
4.NLS sort的支持
sql>alter session set nls_sort='BINARY'; //session级别支持二进制排序,nlssort支持查询语句的排序
5.在SQL语句中使用NLS参数:
SELECT
SELECT ename,to_char(sal,'9G999D99','NLS_NUMERIC_CHARACTERS=",."') FROM emp;
sql>select to_char(sysdate,'YYYY.MM.DD','NLS_DATE_LANGUAGE=CHINESE"') FROM DUAL;
6.索引的支持
CREATE INDEX list_word ON list(list(NLSSORT(word,'NLS_SORT=French_M')));
sql>create index TESTNLSINDEX on kong.authors(nlssort(au_lname,'NLS_SORT=French_M'))
7.获取NLS database参数信息
NLS_DATABASE_PARAMETERS:
PARAMETER(nls_characterset,nls_nchar_characterset)
sql> select parameter,value from nls_database_parameters where parameter like '%CHARACTER%';
sql>select parameter,value from nls_instance_parameters;
sql>select parameter,value from nls_session_parameters;
8.获取NLS设置的信息:
V$NLS_VALID_VALUES(Language,sort,territory,characterset)
V$NLS_PARAMETERS(PARAMETER(NLS session parameters,NLS_CHARACTERSET))
sql>select * from v$nls_valid_values;
sql>select parameter,value from v$nls_parameters;