在线看毛片视频-国产免费av在线-欧美日韩一区二区三区-国产成人无码av在线播放无广告-亚洲人va欧美va人人爽-国产第一草草-西班牙黄色片-四虎在线网站8848-最新av片免费网站入口-东京热无码中文字幕av专区-日本大人吃奶视频xxxx-欧美精品一区二区三区四区五区-国产片天天弄-国产免费内射又粗又爽密桃视频-欧美爱爱网站-日韩v欧美

當前位置:雨林木風下載站 > 應用軟件教程 > 詳細頁面

字符集問題的初步探討

字符集問題的初步探討

更新時間:2025-10-15 文章作者:未知 信息來源:網絡 閱讀次數:

數據庫,簡而言之可視為電子化的文件柜——存儲電子文件的處所,用戶可以對文件中的數據進行新增、截取、更新、刪除等操作。所謂“數據庫”是以一定方式儲存在一起、能與多個用戶共享、具有盡可能小的冗余度、與應...
數據庫,簡而言之可視為電子化的文件柜——存儲電子文件的處所,用戶可以對文件中的數據進行新增、截取、更新、刪除等操作。所謂“數據庫”是以一定方式儲存在一起、能與多個用戶共享、具有盡可能小的冗余度、與應用程序彼此獨立的數據集合。
4. 導入導出及轉換
 
導入導出是我們常用的一個數據遷移及轉化工具,因其導出文件具有平臺無關性,所以在跨平臺遷移中,最為常用。
在導出操作時,非常重要的是客戶端的字符集設置,也就是客戶端的NLS_LANG設置。
NLS_LANG參數由以下部分組成:

NLS_LANG=<Language>_<Territory>.<Clients Characterset>

NLS_LANG各部分含義如下:
LANGUAGE指定:
-Oracle消息使用的語言
-日期中月份和日顯示
TERRITORY指定
-貨幣和數字格式
-地區和計算星期及日期的習慣
CHARACTERSET:
-控制客戶端應用程序使用的字符集
通常設置或者等于客戶端(如Windows)代碼頁 
或者對于unicode應用設置為UTF8
在Windows上查看當前系統的代碼頁可以使用chcp命令:

E:\>chcp
 活動的代碼頁: 936

代碼頁936也就是中文字符集 GBK,在Microsoft的官方站點上,我們可以遭到關于936代碼頁的具體編碼規則,請參考以下鏈接:

http://www.microsoft.com/globaldev/reference/dbcs/936.htm
我們看一個簡單的測試,來了解一下這幾個參數的作用:

 E:\>set NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK

E:\>sqlplus "/ as sysdba"

SQL*Plus: Release 9.2.0.4.0 - Production on 星期六 11月 1 22:51:59 2003

Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.

連接到:
Oracle9i Enterprise Edition Release 9.2.0.4.0 - Production
With the Partitioning, Oracle Label Security, OLAP and Oracle Data Mining options
JServer Release 9.2.0.4.0 - Production

SQL> select sysdate from dual;

SYSDATE
----------
01-11月-03

已選擇 1 行。

SQL> exit
從Oracle9i Enterprise Edition Release 9.2.0.4.0 - Production
With the Partitioning, Oracle Label Security, OLAP and Oracle Data Mining options
JServer Release 9.2.0.4.0 - Production中斷開

E:\>set NLS_LANG=AMERICAN_AMERICA.ZHS16GBK

E:\>sqlplus "/ as sysdba"

SQL*Plus: Release 9.2.0.4.0 - Production on Sat Nov 1 22:52:24 2003

Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.

Connected to:
Oracle9i Enterprise Edition Release 9.2.0.4.0 - Production
With the Partitioning, Oracle Label Security, OLAP and Oracle Data Mining options
JServer Release 9.2.0.4.0 - Production

SQL> select sysdate from dual;

SYSDATE
---------
01-NOV-03

1 row selected.

SQL>
    

查看客戶端NLS_LANG設置可以使用以下方法:
Windows使用:


echo %NLS_LANG%
如:
E:\>echo %NLS_LANG%
AMERICAN_AMERICA.ZHS16GBK


Unix使用:

env|grep NLS_LANG
如:
/opt/oracle>env|grep NLS_LANG
NLS_LANG=AMERICAN_CHINA.ZHS16GBK

 Windows客戶端設置,可以在注冊表中更改NLS_LANG,具體鍵值位于:
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOMExx\
xx指存在多個ORACLE_HOME時系統編號。


導入和導出是客戶端產品,同SQL*PLUS和Oralce Forms一樣,因此,使用EXP/IMP工具將按照NLS_LANG定義的方式轉換字符集。
導出使用的字符集將會記錄在導出文件中,當文件導入時,將會檢查導出時使用的字符集設置,如果這個字符集不同于導入客戶端的NLS_LANG
設置,字符集將根據導入客戶端NLS_LANG設置進行轉換,如果必要,在數據插入數據庫之前會進行進一步轉換。
通常在導出時最好把客戶端字符集設置得和數據庫端相同,這樣可以避免在導出時發生不必要的數據轉換,導出文件將和數據庫具有相同的字符集。
即使將來會把導出文件導入到不同字符集的數據庫中,這樣做也可以把轉換延緩至導入時刻。
當進行數據導入時,主要存在以下兩種情況:
1.源數據庫和目標數據庫具有相同字符集設置
這時,只需要設置NLS_LANG等于數據庫字符集即可導入(前提是,導出使用的是和源數據庫相同字符集,即三者相同) 
2.源數據庫和目標數據庫字符集不同
如果我們導出時候使用的NLS_LANG是和源數據庫相同的字符集,那么導入時就可以設置客戶端NLS_LANG等于導出時使用的字符集,這
樣轉換只發生在數據庫端,而且只發生一次。
例如:
如果進行從WE8MSWIN1252到UTF8的轉換
1)使用NLS_LANG=AMERICAN_AMERICA.WE8MSWIN1252導出數據庫。
這時創建的導出文件包含WE8MSWIN1252的數據
2)導入時使用NLS_LANG=AMERICAN_AMERICA.WE8MSWIN1252
這時轉換僅發生在insert數據到UTF8的數據庫中。
以上假設的轉換只在目標數據庫字符集是源數據庫字符集的超集時才能轉換。如果不同,一般就需要進行一些特殊的處理。
我們簡單看一下導入的轉換過程(以Oracle8i為例):
1.確定導出數據庫字符集環境
通過讀取導出文件頭,可以獲得導出文件的字符集設置
2.確定導入session的字符集,即導入Session使用的NLS_LANG環境變量
3.IMP讀取導出文件
讀取導出文件字符集ID,和導入進程的NLS_LANG進行比較
4.如果導出文件字符集和導入Session字符集相同,那么在這一步驟內就不需要轉換
如果不同,就需要把數據轉換為導入Session使用的字符集。
然而這種轉換只能在單byte字符集之間進行。
我們看一個測試:
 
E:\nls2>set NLS_LANG=AMERICAN_AMERICA.US7ASCII

設置導入session NLS_LANG為US7ASCII

E:\nls2>e:\oracle\ora8i\bin\imp eygle/eygle file=Sus7ascii-Cus7ascii-exp817.dmp fromuser=eygle touser=eygle tables=test

這個導出文件是從US7ASCII數據庫導出,導出客戶端NLS_LANG也是US7ASCII

Import: Release 8.1.7.1.1 - Production on Fri Nov 7 00:59:22 2003

(c) Copyright 2000 Oracle Corporation.  All rights reserved.

Connected to: Oracle8i Enterprise Edition Release 8.1.7.1.1 - Production
With the Partitioning option
JServer Release 8.1.7.1.1 - Production

這時導入,在DMP文件和NLS_LANG之間不需要進行字符集轉換。

Export file created by EXPORT:V08.01.07 via conventional path
import done in US7ASCII character set and ZHS16GBK NCHAR character set
import server uses ZHS16GBK character set (possible charset conversion)
export server uses UTF8 NCHAR character set (possible ncharset conversion)
. . importing table                         "TEST"          2 rows imported
Import terminated successfully without warnings.
    

5.對于多Byte字符集的導入(如:UTF8)
需要設置導入Session字符集和導出字符集相同
否則就會遇到:IMP-16 "Required character set conversion (type %lu to %lu) not supported" 錯誤。
:
E:\nls2>set NLS_LANG=AMERICAN_AMERICA.ZHS16GBK

導入Session字符集設置為ZHS16GBK
導入US7ASCII的導出文件

E:\nls2>e:\oracle\ora8i\bin\imp eygle/eygle file=Sus7ascii-Cus7ascii-exp817.dmp fromuser=eygle touser=eygle

Import: Release 8.1.7.1.1 - Production on Fri Nov 7 00:38:55 2003

(c) Copyright 2000 Oracle Corporation.  All rights reserved.

Connected to: Oracle8i Enterprise Edition Release 8.1.7.1.1 - Production
With the Partitioning option
JServer Release 8.1.7.1.1 - Production

IMP-00016: required character set conversion (type 1 to 852) not supported
IMP-00000: Import terminated unsuccessfully

在從導出文件US7ASCII到導入 NLS_LANG設置為ZHS16GBK的過程中,不支持單Byte字符集向多Byte轉換,報出以上錯誤。
    

6.導入Session字符集應該是導出字符集的超級,否則,專有的字符將難以正確轉換。
7.當數據轉換為導入Session字符集設置以后,如果導入Session字符集不同于導入數據庫字符集,這時還需要最后一步轉換,這要求導入數據庫字符
集是導入session字符集的超級,否則某些專有字符將不能正常轉換。
我們繼續看上面的兩個過程,這里有這樣兩個原則:
1.如果NLS_LANG的設置和數據庫相同,那么數據(在傳輸過程中當然是2進制碼)不經過轉換就直接插入數據庫中。
2.如果NLS_LANG的設置和數據庫不同,那么數據需要轉換后才能插入數據庫中。
我們再回頭來看上面的第一個例子:
:
Export file created by EXPORT:V08.01.07 via conventional path
import done in US7ASCII character set and ZHS16GBK NCHAR character set
import server uses ZHS16GBK character set (possible charset conversion)
export server uses UTF8 NCHAR character set (possible ncharset conversion)
. . importing table                         "TEST"          2 rows imported
Import terminated successfully without warnings.

這時候經過第一步轉換后的數據,US7ASCII到ZHS16GBK丟失首位,原樣插入數據庫,我們看到這時數據庫中存放的就是錯誤的字符(在后面部分我們做了詳細的轉換):

E:\nls2>sqlplus eygle/eygle

SQL*Plus: Release 9.2.0.4.0 - Production on Fri Nov 7 00:35:39 2003

Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.


Connected to:
Oracle8i Enterprise Edition Release 8.1.7.1.1 - Production
With the Partitioning option
JServer Release 8.1.7.1.1 - Production

SQL> select * from test;

NAME
--------------------
2bJT
test
    


在Oracle9i中,以上情況略有不同。 

全新的路由器不僅讓你更穩定快速地連接無線網絡,更可以讓家中的智能設備連接在一起。

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

在线看毛片视频-国产免费av在线-欧美日韩一区二区三区-国产成人无码av在线播放无广告-亚洲人va欧美va人人爽-国产第一草草-西班牙黄色片-四虎在线网站8848-最新av片免费网站入口-东京热无码中文字幕av专区-日本大人吃奶视频xxxx-欧美精品一区二区三区四区五区-国产片天天弄-国产免费内射又粗又爽密桃视频-欧美爱爱网站-日韩v欧美
  • <li id="86scu"><menu id="86scu"></menu></li>
    <li id="86scu"></li>
    <button id="86scu"></button>
  • <s id="86scu"></s><button id="86scu"><menu id="86scu"></menu></button>
  • 国产欧美激情视频| 国产中文字幕在线免费观看| 国产精品拍拍拍| 欧美成人黑人猛交| 久热免费在线观看| www.日日操| 日韩中文字幕二区| 人人爽人人av| 午夜剧场高清版免费观看| 男人的天堂日韩| www.99r| 在线播放av中文字幕| 日韩av加勒比| 国产免费xxx| ww国产内射精品后入国产| 1024av视频| 中文字幕国产免费| 日韩va在线观看| 无码人妻少妇伦在线电影| 国产色一区二区三区| 免费高清在线观看免费| 亚洲 激情 在线| 欧美视频亚洲图片| 男人的天堂avav| 国产精品无码专区av在线播放| 五月婷婷六月丁香激情| 四虎成人在线播放| 毛片在线视频播放| 午夜国产福利在线观看| 美女扒开大腿让男人桶| 免费裸体美女网站| 五月天在线免费视频| 免费看国产曰批40分钟| 亚洲少妇久久久| 激情视频小说图片| 少妇黄色一级片| avav在线播放| 三区视频在线观看| av动漫在线看| 亚洲一区 在线播放| 午夜精品久久久内射近拍高清| 黄色小视频免费网站| 国产69精品久久久久999小说| www.激情小说.com| 日韩国产一级片| 欧美aaa在线观看| 国产精品入口免费软件| 韩国无码av片在线观看网站| www.亚洲高清| 欧美v在线观看| 精品国产av无码一区二区三区| 欧美男女交配视频| 黑森林福利视频导航| 国产精品无码免费专区午夜| 在线免费看污网站| 在线观看免费成人av| 日日鲁鲁鲁夜夜爽爽狠狠视频97| 在线免费黄色小视频| 亚洲一区在线不卡| 日韩 欧美 高清| 久久久999视频| 国产91在线亚洲| 欧美性受xxxx黑人猛交88| 黄色aaa级片| 无需播放器的av| 在线免费观看视频黄| 国产无套粉嫩白浆内谢的出处| 日韩国产欧美亚洲| 国产午夜福利100集发布| 成人在线国产视频| 大荫蒂性生交片| www.好吊操| 男人日女人下面视频| 两根大肉大捧一进一出好爽视频| www.成年人视频| 日本丰满少妇xxxx| 日韩久久一级片| 嫩草影院国产精品| 日本中文字幕精品—区二区| 午夜免费看毛片| 日本丰满大乳奶| 欧美一级欧美一级| 成人在线免费播放视频| 中文久久久久久| 涩多多在线观看| 97超碰国产精品| 蜜臀av午夜一区二区三区| 亚洲少妇久久久| 亚洲综合激情五月| 久久久久久久久久久99| 男人操女人免费软件| 美女网站色免费| 青青草视频国产| 国产主播在线看| 无码人妻aⅴ一区二区三区日本| 一级黄色录像免费看| 成年人深夜视频| 亚洲一区二区三区四区五区xx| 亚洲欧美另类动漫| 日本三级免费观看| 欧美日韩在线成人| 欧洲av无码放荡人妇网站| 国产日韩一区二区在线| 人人爽人人爽av| 1024精品视频| 亚洲一区二区福利视频| 青青草视频在线免费播放| 日日摸天天爽天天爽视频| 亚洲最大天堂网| 噜噜噜久久亚洲精品国产品麻豆| 岛国av在线免费| 97国产精东麻豆人妻电影| www.51色.com| 日韩av播放器| 国产精品12345| 中文字幕日韩精品无码内射| 中文字幕天天干| 久久久噜噜噜www成人网| 免费看污污视频| 精品综合久久久久| 成人性生生活性生交12| 三上悠亚久久精品| 真人做人试看60分钟免费| 日本在线观看视频一区| 国产精品99久久免费黑人人妻| 日韩中文在线字幕| 在线无限看免费粉色视频| 91香蕉视频污版| 日韩在线第三页| 免费在线观看的毛片| 免费在线观看的av网站| 成人在线观看你懂的| 国产a级片网站| 成人在线视频一区二区三区| 国产精品久久成人免费观看| 日本高清免费观看| 999久久久精品视频| 超碰人人草人人| 国产又黄又爽免费视频| 一道本在线观看视频| 好色先生视频污| 日韩欧美精品免费| 欧美久久久久久久久久久久久| 国产精品久久国产| 日韩欧美不卡在线| 欧美a在线视频| 牛夜精品久久久久久久| 亚洲三级在线观看视频| 午夜在线视频免费观看| 激情五月婷婷六月| 熟女性饥渴一区二区三区| www日韩在线观看| 亚洲xxx在线观看| aaaaaaaa毛片| 国产女大学生av| 九九热免费精品视频| 黄色高清视频网站| 人人妻人人添人人爽欧美一区| 日本精品免费在线观看| 国产又大又黄又猛| 色撸撸在线观看| 内射国产内射夫妻免费频道| 天美星空大象mv在线观看视频| 在线播放av中文字幕| 精品一区二区三区无码视频| 欧美亚洲另类色图| 久久精品国产精品亚洲精品色| 成人免费性视频| 国产欧美一区二| 香港三级韩国三级日本三级| 日本中文字幕影院| 无码av天堂一区二区三区| 777视频在线| 九色自拍视频在线观看| 99国产精品久久久久久| 日韩欧美视频网站| 国产一二三四区在线观看| 日本熟妇人妻xxxxx| aa免费在线观看| 一二三在线视频| 天堂一区在线观看| 国产精品免费观看久久| 天天干天天色天天爽| 亚洲欧美视频二区| 91视频 -- 69xx| 97中文字幕在线| 欧美日韩dvd| 午夜av中文字幕| 久热精品在线播放| 国产福利一区视频| 欧美污视频网站| 国产一级爱c视频| aa视频在线播放| 欧美又粗又长又爽做受| 无颜之月在线看| 亚洲第一综合网站| 91看片淫黄大片91| 中文字幕第50页| 中文字幕精品在线播放| 成年人黄色在线观看|