《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 利用OCI封裝類實現Oracle與國產數據庫間的應用程序移植
利用OCI封裝類實現Oracle與國產數據庫間的應用程序移植
2016年微型機與應用第08期
李培軍,畢于慧,田仲,張權,董瑋
(61139部隊信息中心,北京 100091)
摘要: 利用國產數據庫(達夢和神通)與Oracle數據庫訪問接口OCI的兼容性,設計了OCI訪問接口封裝類,以VC++為平臺實現了應用程序由Oracle向國產數據庫的移植。對移植后的查詢性能進行了比較,結果表明,國產數據庫的數據查詢性能優于Oracle,作為國家自主知識產權,國產數據庫在安全性和后續服務上比Oracle更有優勢,對于建立我國自主可控的信息產業體系有一定借鑒意義。
Abstract:
Key words :

  李培軍,畢于慧,田仲,張權,董瑋

 ?。?1139部隊信息中心,北京 100091)

       摘要: 利用國產數據庫(達夢和神通)與Oracle數據庫訪問接口OCI的兼容性,設計了OCI訪問接口封裝類,以VC++為平臺實現了應用程序由Oracle向國產數據庫的移植。對移植后的查詢性能進行了比較,結果表明,國產數據庫的數據查詢性能優于Oracle,作為國家自主知識產權,國產數據庫在安全性和后續服務上比Oracle更有優勢,對于建立我國自主可控的信息產業體系有一定借鑒意義。

  關鍵詞OCI封裝;國產數據庫;移植

0引言

  為提高信息安全,發展自主可控信息系統是我國信息化建設中的重要任務,采用國產數據庫構建應用系統正成為趨勢。目前,很多政府部門和企業都在嘗試將應用遷移到國產數據庫上。本文針對基于Oracle數據庫的應用程序,利用國產數據庫與Oracle數據庫訪問接口OCI的兼容性,研究了如何利用OCI進行面向對象的封裝,構建通用的數據庫訪問類,為用戶提供統一的數據庫訪問接口,使程序員更方便地實現數據應用由Oracle數據庫向國產數據庫的移植。

1OCI簡介

  OCI(Oracle Call Interface)是Oracle公司開發的一個應用程序開發工具。它提供了一組可對Oracle數據庫進行存取的接口子例程,通過在第三代語言中進行調用可達到存取Oracle數據庫的目的[1]。作為一種數據庫訪問方法,它比ODBC、ADO等訪問接口更為靈活,訪問和執行速度也更快。

2OCI封裝類的設計與實現

  2.1OCI類的設計

  進行OCI封裝類時的設計思想如下[23]:

 ?。?)對外隱藏復雜的OCI函數調用,只提供鏈接、查詢、斷開等直觀的數據庫訪問方法。

 ?。?)使用OCI調用會涉及許多句柄,把各類句柄作為類成員進行管理。

 ?。?)提供統一友好的接口供應用程序調用。

  2.2OCI類的實現

001.jpg

  使用OCI方法實現Oracle數據庫應用鏈接流程如圖1所示,本文將其過程進行封裝,將OCI底層函數封裝到一個類里,該類包含3個函數:Connect()、Query()和DisConnect(),其中,Connect()實現數據庫的鏈接,Query()函數實現數據的查詢。針對大字段,可構建專門的查詢語句QueryBLOB()。

  (1)Connect()函數

  Connect()函數主要包括OCI環境初始化、錯誤檢查、分配事務句柄等。

  OCIEnvInit(&envhp,(ub4)OCI_DEFAULT,(size_t)0,(dvoid**)0);

  OCIHandleAlloc((dvoid*)envhp,(dvoid**)&errhp,(ub4)OCI_HTYPE_ERROR,(size_t)0,(dvoid**)0);

  OCIAttrSet( (dvoid*)svchp,(ub4)OCI_HTYPE_SVCCTX,(dvoid*)srvhp,(ub4)0,(ub4)OCI_ATTR_SERVER,errhp);圖1OCI的流程和對應封裝函數status = OCISessionBegin(svchp,errhp,usrhp,OCI_CRED_RDBMS,OCI_DEFAULT);

  OCIAttrSet((dvoid*)svchp,(ub4)OCI_HTYPE_SVCCTX,(dvoid*)usrhp,(ub4)0,(ub4)OCI_ATTR_SESSION,errhp);

  OCIHandleAlloc( (dvoid *)envhp,(dvoid **)&txnhp,OCI_HTYPE_TRANS,0,0);

  (2)Query()函數

  open();

  prepare(query);

  allocateCursor();

  (3)DisConnect()函數

  該函數包括結束會話、釋放句柄和相應資源。

  OCISessionEnd( svchp,errhp,usrhp,(ub4)OCI_DEFAULT );

  OCIServerDetach(srvhp,errhp,(ub4)OCI_DEFAULT);

  OCIHandleFree((dvoid*)txnhp,(ub4)OCI_HTYPE_TRANS);

3使用OCI封裝類進行數據應用的移植

  3.1移植過程

  本文將上述的OCI封裝類用于實現基于Oracle數據庫的應用向國產數據庫移植。Oracle數據庫版本9.0以上,國產數據庫采用達夢7.1.3.165、神通數據庫7.0,達夢數據庫和神通數據庫分別提供了DM DCI和CNIL數據庫訪問接口[4-5],這兩個接口都與Oracle OCI接口兼容,所以在數據應用移植的過程中只需要將Oracle的oci.h、oci.lib替換為達夢的oci.h、 dmoci.lib或者神通的cnil.h、cnil.lib,同時將達夢或者神通安裝目錄下的include目錄包含即可編譯成功,無需修改代碼。表1中描述了不同數據庫在移植過程中所必需的文件。

  數據應用移植過程如圖2所示。采用遷移工具將數據從Oracle數據庫遷移到國產數據庫中,國產數據庫都提供了數據遷移工具,并支持多數據源;各類型數據庫通過不同的數據庫頭文件來實現底層函數的調用[67];SQL配置工具主要方便用戶在調整庫結構或優化查詢時修改SQL語句。

  通過圖2可以看出,將應用程序從Oracle數據庫移植到國產數據時,通過一個集中的OCI面向對象封裝類可實現不同類數據庫管理系統訪問接口,只需將對應的庫文件和頭文件進行替換并重新編譯程序即可完成,同時要將對應的動態庫與應用程序放在一起。

  3.2應用效果

  本文采用Visual C++ 6.0為開發平臺進行應用開發,對某單位的業務應用系統進行國產化移植,并分別在本地和通過網絡(百兆)客戶端,使用業務程序查詢業務庫中某一張表(21個字段,76 470條記錄),并對查詢結果進行比較,各類數據庫的查詢速度如表2所示。

002.jpg

  從查詢速度上看,神通數據庫優勢較為明顯;從網絡配置上,達夢和神通數據庫無需安裝數據庫客戶端,應用程序可直接訪問網絡數據庫(只需提供數據庫名和IP地址即可),較之于Oracle開發的應用,部署和升級更加方便。

4結論

  Oracle OCI一種相對高效的底層訪問方式,國產主流數據庫都針對OCI開發了基于數據庫底層的且兼容Oracle的訪問接口(如達夢的DCI和神通的CNIL),本文采用VC++構建了適應不同訪問接口的OCI封裝類[8-9],并成功應用于某單位基于數據庫的應用程序國產化改造,提高了從基于Oracle的OCI向國產數據庫的應用移植效率。另外,國產數據庫在安全性和后續服務上比Oracle更有優勢,是未來的發展趨勢。

參考文獻

 ?。?] 何雄.Oracle Spatial與OCI高級編程[M].北京:中國鐵道出版社,2006.

 ?。?] 莫晶,胡術,李娜娜,等.基于OCI的數據庫訪問接口的改進與實現[J].福建電腦,2009,25(1):12.

 ?。?] 龐維翰,陳有青.用OCI封裝類進行數據庫間應用系統的移植[J].計算機工程與應用,2005,41(29):177179.

  [4] 達夢數據庫(武漢)有限公司.達夢程序員手冊[Z].2014.

 ?。?] 天津神舟通用數據技術有限公司.神通程序員手冊[Z].2010.

 ?。?] POLI F, OVEREEM S, LAMMERS G J, et al. Narcolepsy as an adverse event following immunization: case definition and guidelines for data collection, analysis and presentation[J]. Vaccine, 2013, 31(6): 9941007.

 ?。?] POLI F, OVEREEM S, LAMMERS G J, et al. Narcolepsy as an adverse event following immunization: case definition and guidelines for data collection, analysis and presentation[J]. Vaccine, 2013, 31(6): 9941007.

 ?。?] 蔣楠,于紅業,葛利俊,等.Oracle內嵌表及應用[J].微型機與應用,2014,33(3):9192.

 ?。?] 陳旭飛,于鳳芹,欽道理,等.異構數據庫系統數據轉換方法設計與實現[J].微型機與應用,2015,34(8):9496,100.


此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          国产精品久久久久久久久久久久久| 久久国产夜色精品鲁鲁99| 销魂美女一区二区三区视频在线| 狠狠狠色丁香婷婷综合激情| 欧美一区高清| 亚洲国产成人在线视频| 亚洲国产精品一区二区尤物区| 久久中文字幕一区| 国产一区二区看久久| 亚洲综合成人在线| 老牛影视一区二区三区| 亚洲小少妇裸体bbw| 亚洲欧洲精品一区二区三区| 国产亚洲欧洲997久久综合| 国产精品v欧美精品∨日韩| 亚洲女人天堂成人av在线| 蜜桃精品一区二区三区| 极品日韩av| 午夜精品影院在线观看| 欧美吻胸吃奶大尺度电影| 国产精品xvideos88| 久久大香伊蕉在人线观看热2| 欧美精品播放| 亚洲成人在线视频网站| 国产精品久久久久久久午夜| 亚洲激情小视频| 亚洲乱码国产乱码精品精可以看| 两个人的视频www国产精品| 欧美日韩视频专区在线播放| 亚洲区一区二区三区| 亚洲免费播放| 亚洲国产美女久久久久| 国产亚洲精品久久久| 国产精品视频你懂的| 亚洲激情在线激情| 国产精品美女在线| 亚洲国产成人91精品| 亚洲激情电影中文字幕| 在线看日韩av| 毛片精品免费在线观看| 国产一区二区在线免费观看| 久久男女视频| 国内精品久久久| 在线精品高清中文字幕| 欧美国产大片| 久久狠狠亚洲综合| 欧美性猛交xxxx乱大交蜜桃| 狼狼综合久久久久综合网| 亚洲男人第一av网站| 亚洲特黄一级片| 国产欧美一区二区三区视频| 亚洲精品永久免费| 亚洲精品小视频在线观看| 国产精品久久国产愉拍| 欧美一区二粉嫩精品国产一线天| 亚洲无玛一区| 亚洲一区在线视频| 在线观看91久久久久久| 销魂美女一区二区三区视频在线| 欧美不卡在线| 久久av老司机精品网站导航| 蜜臀av性久久久久蜜臀aⅴ四虎| 久久大香伊蕉在人线观看热2| 欧美久久久久久蜜桃| 欧美暴力喷水在线| 欧美极品aⅴ影院| 欧美精品在欧美一区二区少妇| 亚洲在线不卡| 欧美日韩国产高清| 亚洲欧美日韩在线一区| 欧美日韩免费观看一区三区| 欧美在线播放一区| 国产在线精品成人一区二区三区| 国产亚洲精品激情久久| 一本综合久久| 亚洲电影下载| 亚洲天堂av图片| 国产一区二区三区视频在线观看| 韩国自拍一区| 国产精品一区二区三区久久| 99香蕉国产精品偷在线观看| 久久免费视频在线观看| 欧美日韩一区二区免费在线观看| 国产精品午夜国产小视频| 亚洲精品少妇30p| 欧美一级在线亚洲天堂| 亚洲肉体裸体xxxx137| 久久伊人免费视频| 先锋影音国产一区| 欧美日一区二区在线观看| 一区二区欧美在线观看| 亚洲精品五月天| 亚洲免费观看高清在线观看| 国产农村妇女精品一二区| 亚洲国产美女精品久久久久∴| 亚洲第一视频网站| 国产精品一区二区男女羞羞无遮挡| 欧美午夜免费| 国产午夜精品麻豆| 最新国产の精品合集bt伙计| 亚洲裸体俱乐部裸体舞表演av| 欧美三区在线| 亚洲午夜精品久久久久久app| 黄色成人av网站| 国产精品日韩在线观看| 亚洲天堂免费观看| 欧美在线不卡视频| 亚洲欧美综合国产精品一区| 国产亚洲精品自拍| 亚洲图色在线| 欧美不卡一卡二卡免费版| 欧美三级电影大全| 国产精品视频大全| 亚洲国内精品| 久久久夜色精品亚洲| 欧美深夜福利| 夜夜嗨av一区二区三区| 欧美日韩三级在线| 国产婷婷成人久久av免费高清| 亚洲精品自在久久| 欧美**人妖| 浪潮色综合久久天堂| 国产日韩在线视频| 午夜精品理论片| 亚洲毛片在线观看| 国产精品久久久久久久久久久久久久| 午夜激情久久久| 亚洲高清中文字幕| 欧美激情精品久久久久久| 欧美影院在线播放| 欧美大片91| 国产精品99免视看9| 亚洲一区欧美| 欧美大片91| 国产精品久久| 久久国产精品久久w女人spa| 欧美精品激情在线观看| 欧美日韩四区| 蜜臀av国产精品久久久久| 欧美日韩亚洲系列| 国产美女精品在线| 久久精品1区| 亚洲另类视频| 欧美日在线观看| 狠狠久久五月精品中文字幕| 在线视频一区观看| 国产精品免费久久久久久| 欧美一区在线直播| 亚洲精品国偷自产在线99热| 久久久久久久波多野高潮日日| 久久精品国产久精国产爱| 免费观看欧美在线视频的网站| 久久久www成人免费精品| 中文一区字幕| 国内一区二区三区在线视频| 免费在线国产精品| 国产精品福利在线观看网址| 国产精品久久久久免费a∨| 午夜精品视频在线| 亚洲欧美日韩精品久久久| 欧美在线免费播放| 欧美精品久久久久久久| 欧美中文字幕视频| 亚洲午夜一级| 亚洲三级电影全部在线观看高清| 亚洲欧美日韩国产一区二区三区| 国产精品九九久久久久久久| 欧美视频在线一区二区三区| 一区二区日韩| 亚洲免费在线观看视频| 欧美一区二区高清| 欧美揉bbbbb揉bbbbb| 一本不卡影院| 国产欧美视频一区二区| 亚洲福利一区| 欧美日韩第一区日日骚| 欧美国产丝袜视频| 美女被久久久| 免费观看成人www动漫视频| 亚洲久色影视| 亚洲午夜精品一区二区三区他趣| 中文有码久久| 激情懂色av一区av二区av| 一区二区三欧美| 亚洲女与黑人做爰| 国产欧美另类| 国产亚洲欧美一区在线观看| 一区二区三区四区蜜桃| 欧美伊人久久大香线蕉综合69| 欧美日韩中文精品| 亚洲精品无人区| 亚洲麻豆一区| 99av国产精品欲麻豆| 红桃视频国产一区| 亚洲视频网站在线观看| 亚洲国产精品99久久久久久久久| 亚洲国产高清aⅴ视频| 日韩视频一区二区| 欧美与欧洲交xxxx免费观看| 国产精品久久久对白| 欧美va天堂在线| 欧美成人免费网站| 欧美不卡视频| 国产专区一区| 嫩草影视亚洲| 国产欧美高清| 亚洲精品中文字幕有码专区| 欧美国产日韩一二三区| 黑丝一区二区三区| 免费视频一区二区三区在线观看| 午夜精品久久久久久久久久久| 欧美国产在线视频| 黑人巨大精品欧美一区二区小视频| 欧美成人午夜剧场免费观看| 韩国av一区二区三区在线观看| 一区二区三区欧美视频| 亚洲欧美日韩在线播放| 麻豆av一区二区三区久久| 一本一本久久| 国产专区一区| 久久久综合网站| 尤物精品在线| 国产在线视频欧美一区二区三区| 亚洲在线观看| 国产自产女人91一区在线观看| 国产精品免费网站| 亚洲精品一区在线观看香蕉| av成人免费观看| 欧美三级日韩三级国产三级| 欧美精品一卡二卡| 9久re热视频在线精品| 日韩视频在线观看国产| 在线精品高清中文字幕| 欧美成人免费在线| 久久精品国产77777蜜臀| 国产精品v欧美精品v日韩精品| 国产日韩欧美在线播放| 久久夜色精品| 欧美午夜精品久久久久久久| 免费看亚洲片| 欧美视频中文字幕在线| 亚洲精品国产品国语在线app| 久久国产欧美| 亚洲风情在线资源站| 狠狠久久亚洲欧美| 国产一区二区三区日韩| 国产精品家庭影院| 亚洲一级电影| 欧美精品成人91久久久久久久| 亚洲精品一区二区在线| 中国日韩欧美久久久久久久久| 91久久久国产精品| 欧美日韩一区自拍| 久久资源在线| 久久美女艺术照精彩视频福利播放| 一本色道久久综合亚洲精品高清| 久久婷婷成人综合色| 国产一区二区三区网站| 国产精品乱人伦中文| 在线一区二区视频| av成人激情| 亚洲精品视频在线观看免费| 国产乱子伦一区二区三区国色天香| 欧美va亚洲va国产综合| 亚洲国产精品视频一区| 国产日韩欧美中文在线播放| 亚洲婷婷国产精品电影人久久| 欧美三级在线播放| 欧美激情精品久久久六区热门| 国产精品久久一卡二卡| 国产精品麻豆成人av电影艾秋| 久久人91精品久久久久久不卡| 久久九九久精品国产免费直播| 极品日韩av| 亚洲综合国产| 亚洲视频国产视频| 国产亚洲午夜| 在线午夜精品自拍| 悠悠资源网久久精品| 亚洲欧美自拍偷拍| 国产欧美日韩精品专区| 欧美日韩精品国产| 91久久国产综合久久| 亚洲一二区在线| 红桃视频成人| 久久成人18免费观看| 国产精品综合网站| 精品999在线观看| 你懂的国产精品| 欧美激情第8页| 最新日韩中文字幕| 亚洲视频一区在线| 一本一道久久综合狠狠老精东影业| 性欧美18~19sex高清播放| 免费在线成人av| 国产毛片一区| 亚洲欧美成aⅴ人在线观看| 欧美精品一区二区三区四区| 亚洲免费一在线| 欧美精品一区二区蜜臀亚洲| 男女精品网站| 欧美福利影院| 欧美精品成人91久久久久久久| 亚洲黄色精品| 欧美日韩精品在线| 国产深夜精品福利| 欧美激情一区二区三区高清视频| 蜜桃久久精品一区二区| 国产欧美一区二区精品婷婷| 国产精品一区在线观看你懂的| 亚洲香蕉在线观看| 亚洲麻豆av| 猛男gaygay欧美视频| 鲁鲁狠狠狠7777一区二区| 最新国产成人在线观看| 亚洲精品一区在线观看香蕉| 国色天香一区二区| 欧美日韩一区二区三区在线| 久久久亚洲国产天美传媒修理工| 一区二区三区导航| 欧美激情第8页| 欧美在线视频一区二区三区| 亚洲欧美资源在线| 亚洲欧洲精品天堂一级| 亚洲国产日韩在线| 欧美日韩另类国产亚洲欧美一级| 免费欧美日韩国产三级电影| 91久久精品一区二区三区|