小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Oracle學習筆記(16)字符語言環(huán)境

 憂郁_小剛 2011-05-20

字符語言環(huán)境

 

Session級、OS環(huán)境變量:基于Client端的字符設置
Database級:Database在存儲數(shù)據(jù)時的字符集(character set \national character set)

 

1.選擇數(shù)據(jù)庫的字符集模式
(1)單字節(jié)的字符集: 7-bit(128個符號)ASCII碼、8-bit(256個符號)擴展ASCII碼
可變寬度多字節(jié)字符集(1~3個字節(jié)之間:utf-8)、固定寬度多字節(jié)字符集 Unicode(AL32UFT8,AL16UTF16)

Database 字符集>依賴于OS字符集
(2)國際National字符集>Default(AL16UFT16)

sql>select parameter ,value frm nls_database_parmaeters  //NLS_NCHAR_CHARACTERSET :AL16UFT16

 

選擇Oracle國際字符集的方法:空間重要還是性能重要?
AL16UTF16 性能方面重要、UTF8 空間重要。

選擇Unicode 數(shù)據(jù)類型:假定支持多語言;包應用;性能(單字節(jié)數(shù)據(jù)庫字符集使用固定長度國際字符集);使用windows客戶端可以更好的支持UTF-16

 

2.基于語言的行為:使用初始化參數(shù)、環(huán)境變量和ALTER SESSION命令

(優(yōu)先級:初始化參數(shù)>環(huán)境變量>ALTER SESSION)
環(huán)境變量: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; //命令執(zhí)行后變成了中文
cmd: set nls_lang=AMERICAN_AMERICA.US7ASCII  //設定環(huán)境變量(語言_區(qū)域.字符集)
     set nls_date_format='YYYY.MM.DD'  //設定環(huán)境變量(日期格式)
     SQLPLUSW /NOLOG
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'; //語言發(fā)生改變(nls_date_language、nls_sort)
sql>select * from nls_session_parameters;

sql>alter session set nls_territory=CHINA; //區(qū)域值發(fā)生改變(nls_currency、nls_iso_currency、nls_date_format、nls_numberic_characters)
sql>select * from nls_session_parameters;  //使得貨幣符號、時間格式也相應隨著區(qū)域的不同而改變

sql>alter session set nls_currency='$';
sql>select * from nls_session_parameters;   //可以將貨幣符號“RMB”用“$”符號來覆蓋

sql>select sysdate from dual; //系統(tǒng)日期格式 29-4?  -2011
sql>alter session set nls_date_format='YYYY.MM.DD';
sql>select sysdate from dual; //2011.4.29


3.語言依賴性的應用程序對系統(tǒng)的影響
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參數(shù):
SELECT  to_char(hire_date,'DD.Mon.YYYY','NLS_DATE_LANGUAGE=FRENCH') FROM employee;
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參數(shù)信息
NLS_DATABASE_PARAMETERS:
PARAMETER(nls_characterset,nls_nchar_characterset)

sql> select parameter,value from nls_database_parameters where parameter like '%CHARACTER%';
 // NLS_NUMERIC_CHARACTERS =.,  NLS_CHARACTERSET=ZHS16GBK  NLS_NCHAR_CHARACTERSET=AL16UTF16

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;

    本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多