国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

醫(yī)院信息系統(tǒng)Oracle數(shù)據(jù)庫中導入數(shù)據(jù)中文亂碼的解決技術

2017-03-03 05:31宮彥婷
中國醫(yī)學裝備 2017年2期
關鍵詞:亂碼信息系統(tǒng)服務器

宮彥婷

醫(yī)院信息系統(tǒng)Oracle數(shù)據(jù)庫中導入數(shù)據(jù)中文亂碼的解決技術

宮彥婷①

目的:根據(jù)數(shù)據(jù)庫的US7ASCII字符集使用受限的實際情況,將醫(yī)院信息系統(tǒng)(HIS)數(shù)據(jù)庫字符集轉換成為ZHS16GBK碼,保證導入數(shù)據(jù)庫文件后,漢字顯示正常。方法:在數(shù)據(jù)庫字符集和數(shù)據(jù)庫導入、導出程序功能的基礎上,使用該工具和文本編輯器完成數(shù)據(jù)庫字符集的轉換。結果:通過實際測試給出了一套字符集升級、避免中文顯示亂碼的解決方案。結論:HIS數(shù)據(jù)庫版本升級時,應做好字符集選擇測試,避免引起漢字顯示亂碼的問題。

數(shù)據(jù)庫字符集;Oracle數(shù)據(jù)庫;醫(yī)院信息系統(tǒng)

[First-author’s address]Information Department, The PLA General Hospital, Beijing 100700,China.

醫(yī)院信息系統(tǒng)(hospital information system,HIS)已經(jīng)成為保障醫(yī)院正常運轉的關鍵因素,其承載了醫(yī)院門診掛號收費、醫(yī)生站、住院管理及檢查檢驗等核心業(yè)務。Oracle數(shù)據(jù)庫是醫(yī)院HIS系統(tǒng)的基礎,其安全、穩(wěn)定以及先進性將直接影響到醫(yī)院的正常醫(yī)療活動,對保障醫(yī)療質量,提升工作效率具有重要作用[1-3]。

Oracle數(shù)據(jù)庫在數(shù)據(jù)庫升級或數(shù)據(jù)遷移時,通常選用導入導出實用程序,既可解決不同種或不同版本操作系統(tǒng)、不同版本數(shù)據(jù)庫的數(shù)據(jù)移動,還可實現(xiàn)數(shù)據(jù)物理存儲結構的重整[4]。

在Oracle數(shù)據(jù)庫的實際應用中,與字符集問題關系最大的則是導入導出,即exp/imp工具。在進行exp/imp時,如果客戶端和服務器端的nls_lang設置一樣,則無問題。但是,要在2個不同字符集的系統(tǒng)之間導數(shù)據(jù)則常會出現(xiàn)不成功的現(xiàn)象,如導出數(shù)據(jù)庫時正常時為中文顯示,當導入到其他系統(tǒng)時則變成了亂碼;還有一類是從Oacle11g開始,Oracle公司不再支持us7ascii字符集,廣泛使用zhs16gbk字符集,以往被廣泛使用的us7ascii字符集在11 G中將不能被選擇,取而代之的是zhs16gbk字符集(Oracle優(yōu)選),這樣使用導入后漢字一定為亂碼。

隨著數(shù)字化醫(yī)療的進步,支持ascii字符集的數(shù)據(jù)庫在使用上出現(xiàn)越來越多的弊端[5]。醫(yī)院的信息系統(tǒng)數(shù)據(jù)庫使用的是Oracle 10g,采用us7ascii字符集,擬升級到oracle 11g,需要采用zhs16gbk字符集,通過本研究的方法,測試導入數(shù)據(jù)庫文件后漢字顯示正常。

1 數(shù)據(jù)庫字符集與導入導出概念

1.1 數(shù)據(jù)庫字符集

當數(shù)據(jù)庫一旦創(chuàng)建后,其數(shù)據(jù)庫的字符集不能夠改變。因此,在設計和安裝之初考慮使用的字符集種類十分重要。數(shù)據(jù)庫字符集應該是操作系統(tǒng)本地字符集的一個超集。存取數(shù)據(jù)庫的客戶使用的字符集將決定選擇哪一個超集,即數(shù)據(jù)庫字符集應該是所有客戶字符集的超集。Oracle數(shù)據(jù)庫中與字符集有關的NLS_ LANG參數(shù)如下。

NLS_LANG格式:

NLS_LANG=language_territory.charset

由語言、地域和字符集三部分組成,每部分控制了NLS子集的特性。其中,language指定服務器消息的語言,territory指定服務器的日期和數(shù)字格式,charset指定字符集。

例如:

AMERICAN_AMERICA.US7ASCII

AMERICAN_AMERICA.ZHS16GBK等。

1.2 導入導出

Oracle數(shù)據(jù)庫導入導出imp/exp相當于oracle數(shù)據(jù)還原與備份。Exp命令可將數(shù)據(jù)從遠程數(shù)據(jù)庫服務器導出至本地的dmp文件,imp命令可將dmp文件從本地導入至遠處的數(shù)據(jù)庫服務器中。利用該功能可構建2個相同的數(shù)據(jù)庫,一個用來測試,另一個用來正式使用。

2 查詢Oracle字符集的方法

在Oracle數(shù)據(jù)庫的應用中,通常會遇到由于字符集不同而使數(shù)據(jù)導入失敗的情況,其涉及三方面的字符集:①oracel server端的字符集;②2.oracle client端的字符集;③3.DMP文件的字符集。在進行數(shù)據(jù)導入時,需要將3個字符集一致導入后方不會出現(xiàn)亂碼。

2.1 查詢oracle server端的字符集

有許多種方法可查出oracle server端的字符集,較為直觀的查詢方法是使用SQL*PLUS[6]其結果如下。

SQL>select userenv('language')from dual;

查詢結果是:userenv('language')

American_america.us7ascii

2.2 確定oracle client端的字符集

在客戶端通過import導入Oracle的dmp文件,如客戶端的字符集與dmp文件對應的數(shù)據(jù)庫字符集不一致時,可能會導致導入的數(shù)據(jù)亂碼。此時可通過修改注冊表來設置客戶端的字符集,以避免亂碼的發(fā)生[7-8]。在windows平臺運行下執(zhí)行regedit,查看注冊表里的HKEY_LOCAL_MACHINESOFTWARE ORACLEKEY_OraClient10g_home1NLS_ LANG,查詢并進行修改,其結果為:American_ america.us7ascii。

2.3 如何查詢DMP文件的字符集

采用oracle的Exp工具導出的DMP文件包含字符集信息,如果DMP文件很大,有數(shù)十個G以上的為常見情況,使用文本編輯器打開文件很慢或者完全打不開,可以采用UltraEdit進行編輯。DMP文件第一行的第2和第3個字節(jié)和第三行第14、15、16字節(jié)、第4行的第1個字節(jié)記錄了DMP文件的字符集(如圖1所示)。

圖1 導出后未修改的dmp文件界面圖

有些資料提出只要修改第1行的第2、3個字節(jié)即可以“騙過”O(jiān)racle的imp命令,經(jīng)過測試該方法的結果不正確。

3 數(shù)據(jù)庫字符集與導入實施方案

將2臺服務器命名為A機、B機。A機數(shù)據(jù)庫服務器為oracle10g,System管理員的賬號是system,全局數(shù)據(jù)庫名為dbserver,字符集us7ascii。B機數(shù)據(jù)庫服務器為oracle11g,System管理員的賬號是system,全局數(shù)據(jù)庫名為dbserver,字符集為zhs16gbk;其安裝路徑完全同A數(shù)據(jù)庫服務器。

3.1 確定在用B數(shù)據(jù)庫服務器的字符集

登陸plsql,輸入如下腳本:SQL>select userenv('language')from dual;結果:simplified chinese_china,zhs16gbk.

3.2 導出文件

在執(zhí)行環(huán)境中,可以在SQLPLUS.exe或者DOS命令行中執(zhí)行。Exp(卸出)將數(shù)據(jù)庫內(nèi)的各對象以二進制方式下載成dmp文件,方便數(shù)據(jù)遷移[9]。使用管理員賬號登陸A數(shù)據(jù)庫服務器。輸入:Expsystem/manager@ dbserver file=d:z.dmp full=y log=e:123.log;導出文件時間非常長,約為10余小時。

3.3 使用UltraEdit工具

由于醫(yī)院的數(shù)據(jù)庫導出后文件巨大,在100 G左右,因此使用普通的文本編輯工具無法打開。使用UltraEdit工具來編輯導出的文件(大約在40~60 min),其結果顯示如圖2所示。

圖2 修改字符集且導入新庫的dmp文件界面圖

圖2 中劃圈部分原來的數(shù)值為0001(16進制),將第一行第2、3列的0001改為0354(0001表示us7ascii字符集,0354表示zhs16gbk字符集),將第三行第14、15、16列、第4行第1列的2個0001分別改為0354。注意,在第4行的第4、5列還有一處0001,此處的值不能修改,否則oracle在導入時報錯。修改完這3處后保存文件,可以確保“騙過”O(jiān)racle的檢查。

3.4 導入

Imp(導入)將Exp下載的dmp文件上載到數(shù)據(jù)庫內(nèi)。輸入:Imp system/manager@ dbserver file=d:z.dmp full=y ignore=y log=e:123. log;尤其應該注意新安裝的oracle11g的安裝路徑需要與原服務器的路徑絕對一致,否則導入不會成功。

此處應注意:導入成功后不可馬上重啟操作系統(tǒng),應立即更換管理員的口令(sys、system、sysman),然后再重啟計算機。以免引起不必要的麻煩。如:①Alter user system identified by 77108;②Alter user sys identified by 77108;③Alter user sysman identified by 77108。

3.5 重啟計算機

進入plsql,測試中文顯示是否正常,不存在亂碼,可以通過查詢某一張數(shù)據(jù)庫表來測試,如查詢工作人員字典Select * from staff_dict a。

4 結語

醫(yī)院數(shù)據(jù)庫從Oracle7開始一直使用us7ascii字符集,從oracle8i升級到oracle10g時未遇到任何問題。隨著醫(yī)院影像樓、新醫(yī)療大樓的陸續(xù)啟用,面臨數(shù)據(jù)庫從10 G升級到11 G。實驗表明,一旦將數(shù)據(jù)庫從10 G升級到11 G必將引起漢字顯示亂碼。為此,通過大量的測試后消除了升級所引起的漢字顯示亂碼問題。因此,一旦升級到高版本的數(shù)據(jù)庫版本時,若字符集選擇不正確或不再支持某個字符集,必將引起漢字顯示亂碼問題。

[1]宮彥婷,常建國,王彪,等.Oracle安全網(wǎng)關技術在醫(yī)院內(nèi)網(wǎng)安全中的研究與應用[J].中國醫(yī)學裝備,2012,9(4):11-14.

[2]李超峰,馬嘉潛,肖華鋒,等.HIS系統(tǒng)數(shù)據(jù)庫跨平臺遷移實踐[J].中國數(shù)字醫(yī)學,2016,11(8):86-88.

[3]焦雄飛,孫國志,李子濤,等.醫(yī)院信息系統(tǒng)集成與交換平臺一體化建設方案的研究[J].中國醫(yī)學裝備,2016,13(8):82-85.

[4]劉微,劉志敏.Oracle數(shù)據(jù)庫數(shù)據(jù)導入導出實用程序的評測[J].中國數(shù)字醫(yī)學,2012,7(11):65-67.

[5]莊紹燕,楊保衛(wèi).“軍衛(wèi)一號”數(shù)據(jù)庫字符集升級[J].中國醫(yī)療設備,2013,28(11):54-55.

[6]龔維榮,周順平,萬波.淺談Oracle數(shù)據(jù)庫基于索引的SQL語句優(yōu)化方法[J].計算機工程與應用,2003,39(5):196-199.

[7]曹新志,沈君姝,郭輝,等.Oracle數(shù)據(jù)庫在PACS/RIS系統(tǒng)中的應用[J].中國醫(yī)療設備,2013,28(7):35-37.

[8]談永奇,候道勇.基于Oracle的數(shù)據(jù)復制技術在HIS中的應用[J].醫(yī)療衛(wèi)生裝備,2010,31(10):66-67.

[9]吳淑瑋,閆訓超,曹齊.企業(yè)級信息系統(tǒng)數(shù)據(jù)遷移[J].計算機系統(tǒng)應用,2013,22(7):53-57.

The technology solution about Chinese garbled during importing data in the Oracle database of hospital information system/

GONG Yan-ting//China Medical Equipment,2017,14(2):90-92.

Objective:To convert the HIS database character set into ZHS16GBK code in order to ensure Chinese character can be normally displayed after data were imported.Methods:Used the tool and text editor to complete the conversion of database character set which based on the basis of database character set and the functions of database import and export procedures.Results:By actual test, this research provide a set of technology solutions can upgrade character set and avoid Chinese display garbled.Conclusion:In order to avoid Chinese characters display garbled, actual test of character set would been finished before the database version is upgraded.

Database character set; Oracle database; Hospital information system

1672-8270(2017)02-0090-03

R197.324

A

10.3969/J.ISSN.1672-8270.2017.02.027

2016-11-15

①陸軍總醫(yī)院信息科 北京 100700

宮彥婷,女,(1973- ),碩士,副主任技師。陸軍總醫(yī)院信息科,從事醫(yī)院信息化系統(tǒng)的設計與應用的研究工作。

猜你喜歡
亂碼信息系統(tǒng)服務器
企業(yè)信息系統(tǒng)安全防護
服務器組功能的使用
對癥下藥解決多種亂碼難題
理解Horizon 連接服務器、安全服務器的配置
這些真的不是亂碼,是漢字
PowerTCP Server Tool
基于區(qū)塊鏈的通航維護信息系統(tǒng)研究
信息系統(tǒng)審計中計算機審計的應用
計算機網(wǎng)絡安全服務器入侵與防御
基于ADC法的指揮信息系統(tǒng)效能評估
阿拉善左旗| 普兰县| 临高县| 中西区| 三穗县| 含山县| 陵水| 绍兴市| 梁河县| 武邑县| 乡城县| 福建省| 文登市| 留坝县| 突泉县| 进贤县| 延津县| 内乡县| 鲁山县| 怀远县| 林甸县| 娄烦县| 资阳市| 泉州市| 廊坊市| 福泉市| 兴山县| 曲阜市| 哈尔滨市| 策勒县| 忻城县| 南皮县| 安化县| 阜平县| 寿宁县| 筠连县| 清水县| 浪卡子县| 柞水县| 镇远县| 大渡口区|