本文轉(zhuǎn)自oracle官方博客, 很多客戶的數(shù)據(jù)庫的字符集是ZHS16GBK ,但是有些特殊的生僻字在這個字符集里并不包括,下面就以??為例,說明如何把這2個字符插入到數(shù)據(jù)庫。
成都創(chuàng)新互聯(lián)主營鎮(zhèn)安網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,重慶APP開發(fā)公司,鎮(zhèn)安h5小程序設(shè)計搭建,鎮(zhèn)安網(wǎng)站營銷推廣歡迎鎮(zhèn)安等地區(qū)企業(yè)咨詢
1.說明:
數(shù)據(jù)庫的nls_characterset是ZHS16GBK, NLS_NCHAR_CHARACTERSET是AL16UTF16.
插入數(shù)據(jù)使用的工具是sqldeveloper,對應的版本是4.2.0.17.089
2.查詢這2個字的Unicode編碼
互聯(lián)網(wǎng)上有很多Unicode相關(guān)的網(wǎng)站,通過相關(guān)網(wǎng)站可以查找到這2個字對應的Unicode編碼:
? Unicode編碼:4DAE
? Unicode編碼:3F06
3.創(chuàng)建測試表
create table test(name nvarchar2(30));
4.插入數(shù)據(jù)
SQL>insert into test values(N'??');
--必須加字母"N"作為前綴,否則插入的數(shù)據(jù)依然亂碼!
SQL>commit;
5.驗證數(shù)據(jù)
SQL> select name,dump(name,1016) b from test;
NAME B
---------- -----------------------------------------------------
?? Typ=1 Len=4 CharacterSet=AL16UTF16: 4d,ae,3f,6
??這2個字已經(jīng)成功的插入表中并能正確顯示,對應的Unicode編碼是4d,ae,3f,6,跟第一步查詢的結(jié)果是一致的。
相關(guān)參考:
The National Character Set ( NLS_NCHAR_CHARACTERSET ) in Oracle 9i, 10g , 11g and 12c (Doc ID 276914.1)