[發(fā)明專利]一種數(shù)據(jù)綁定批量入庫方法和裝置有效
| 申請(qǐng)?zhí)枺?/td> | 201210377418.5 | 申請(qǐng)日: | 2012-10-08 |
| 公開(公告)號(hào): | CN102929951A | 公開(公告)日: | 2013-02-13 |
| 發(fā)明(設(shè)計(jì))人: | 葉春生;車新奕;雷果;程濤木;冉夢旭;尹開中 | 申請(qǐng)(專利權(quán))人: | 深圳市博瑞得科技有限公司 |
| 主分類號(hào): | G06F17/30 | 分類號(hào): | G06F17/30 |
| 代理公司: | 重慶市恒信知識(shí)產(chǎn)權(quán)代理有限公司 50102 | 代理人: | 劉小紅 |
| 地址: | 518057 廣東省深圳市南山*** | 國省代碼: | 廣東;44 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 數(shù)據(jù) 綁定 批量 入庫 方法 裝置 | ||
技術(shù)領(lǐng)域
本發(fā)明涉及數(shù)據(jù)庫領(lǐng)域,具體是一種數(shù)據(jù)綁定入庫方法和裝置。?
背景技術(shù)
oracle數(shù)據(jù)入庫流程如下:DBA在oracle服務(wù)端創(chuàng)建表,在客戶端通過一定的方法將數(shù)據(jù)入庫到服務(wù)端表中。對(duì)于linux下客戶端常用的方法有兩種。?
方法一:occi,occi是一個(gè)提供了c++應(yīng)用程序使用oracle數(shù)據(jù)庫中的數(shù)據(jù)的API接口,能夠使c++編程最大限度利用oracle數(shù)據(jù)庫操作,包括sql語句處理和對(duì)象處理。?
方法二:sqlloader,sqlloader是oracle的數(shù)據(jù)加載工具,通常用來將大量外部數(shù)據(jù)文件遷移到oracle數(shù)據(jù)庫中。對(duì)我們來說,如果待入庫的數(shù)據(jù)就幾十條,可直接到數(shù)據(jù)庫里去一條條添加;但對(duì)幾千上萬甚至更多的數(shù)據(jù)來說,就不可能一條條添加了,所以sqlloader是必要的。?
occi入庫流程如下:程序開始-->創(chuàng)建環(huán)境變量-->創(chuàng)建數(shù)據(jù)庫連接對(duì)象-->創(chuàng)建Statement類對(duì)象-->執(zhí)行某張表的SQL語句處理數(shù)據(jù)-->釋放Statement對(duì)象-->斷開數(shù)據(jù)庫連接-->釋放環(huán)境變量。每張表都需要上述流程才能正確將數(shù)據(jù)入庫。當(dāng)多個(gè)表都需要入庫時(shí),如果每個(gè)表都按照流程設(shè)計(jì),那么代碼重用率就很低,而且也不便于后期添加刪除維護(hù),因此可以設(shè)計(jì)一套統(tǒng)一的occi調(diào)用接口,上層調(diào)用者無心關(guān)心底層實(shí)現(xiàn)細(xì)節(jié),只需簡單調(diào)用接口就可以將數(shù)據(jù)正確的入庫。??
sqlloader入庫流程如下:構(gòu)建某張表ctl文件-->準(zhǔn)備待入庫數(shù)據(jù)文件-->執(zhí)行sqlldr命令將數(shù)據(jù)源導(dǎo)入數(shù)據(jù)庫。同樣的該流程只反應(yīng)了一張表的入庫流程,當(dāng)多個(gè)表都需要入庫時(shí),能否統(tǒng)一ctl文件生成規(guī)則,統(tǒng)一sqlloader命令調(diào)度規(guī)則。都對(duì)我們提出更高的要求。?
從上面分析不難看出,目前提供入庫的方式都已成熟,但高效合理運(yùn)用這些技術(shù),充分發(fā)揮其技術(shù)特點(diǎn)的方法卻不太多,或者差強(qiáng)人意。?
發(fā)明內(nèi)容
本發(fā)明的目的是同時(shí)提供兩種數(shù)據(jù)入庫方法(occi入庫和sqlloader入庫),提供一種通用的數(shù)據(jù)綁定接口方法,實(shí)現(xiàn)occi入庫全過程和sqlloader?ctl文件生成、數(shù)據(jù)文件生成、數(shù)據(jù)入庫全過程。同時(shí)當(dāng)occi入庫失敗時(shí),啟用sqlloader入庫。?
為了實(shí)現(xiàn)上述目的本發(fā)明采用的技術(shù)方案是,一種數(shù)據(jù)綁定入庫方法,包括如下步驟:?
A、底層提供對(duì)外全局初始化函數(shù),occi初始化函數(shù)、sqlloader初始化函數(shù)和宏定義接口模板;其中宏定義接口模板,包括對(duì)于occi入庫的消息結(jié)構(gòu)與表之間綁定操作函數(shù)模板和消息結(jié)構(gòu)字段與SQL語句綁定函數(shù)模板,對(duì)于sqlloader入庫的消息結(jié)構(gòu)與表ctl文件之間的綁定函數(shù)模板和消息結(jié)構(gòu)字段與寫文件的綁定函數(shù)模板。?
B、上層在配置文件中配置入庫方式,即occi或者sqlloader,只能選其一種入庫方法。?
C、上層調(diào)用步驟A全局初始化函數(shù),底層讀取步驟B配置文件,若是occi入庫,則建立入庫主機(jī)到數(shù)據(jù)庫主機(jī)的連接池。?
D、上層調(diào)用occi初始化函數(shù)或者sqlloader初始化函數(shù);并在頭文件中調(diào)用步驟A中的宏定義接口模板,建立消息結(jié)構(gòu)與表的綁定函數(shù),消息結(jié)構(gòu)字段與SQL語句的綁定函數(shù),消息結(jié)構(gòu)與表ctl文件之間的綁定函數(shù),消息結(jié)構(gòu)字段與寫文件的綁定函數(shù)。?
E、當(dāng)?shù)讓邮盏讲襟ED的occi初始化函數(shù)或sqlloader初始化函數(shù),讀取步驟B配置文件,對(duì)于occi根據(jù)c++類模板,調(diào)用步驟D對(duì)應(yīng)消息結(jié)構(gòu)與表的綁定函數(shù),使用綁定函數(shù)獲取的表字段初始化入庫SQL語句,然后初始化該表occi數(shù)據(jù)隊(duì)列,開啟取隊(duì)列線程,提供對(duì)外該表的插入數(shù)據(jù)函數(shù)模板,生成該表occi入庫實(shí)例,并將該對(duì)象插入occi全局管理實(shí)例中;對(duì)于sqlloader根據(jù)c++類模板,調(diào)用步驟D對(duì)應(yīng)消息結(jié)構(gòu)字段與寫文件的綁定函數(shù)初始化寫文件,調(diào)用步驟D消息結(jié)構(gòu)與表ctl文件的綁定函數(shù)生成該表的ctl控制文件,提供該表寫文件方式入隊(duì)列函數(shù)模板,開啟取隊(duì)列線程,生成該表寫文件實(shí)例,并將該對(duì)象插入寫文件全局管理實(shí)例中。?
F、當(dāng)有某張表數(shù)據(jù)需要入庫時(shí),上層調(diào)用步驟E中occi初始化時(shí)底層提供的對(duì)外該表的插入數(shù)據(jù)函數(shù)模板。?
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于深圳市博瑞得科技有限公司,未經(jīng)深圳市博瑞得科技有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201210377418.5/2.html,轉(zhuǎn)載請(qǐng)聲明來源鉆瓜專利網(wǎng)。
- 同類專利
- 專利分類
G06F 電數(shù)字?jǐn)?shù)據(jù)處理
G06F17-00 特別適用于特定功能的數(shù)字計(jì)算設(shè)備或數(shù)據(jù)處理設(shè)備或數(shù)據(jù)處理方法
G06F17-10 .復(fù)雜數(shù)學(xué)運(yùn)算的
G06F17-20 .處理自然語言數(shù)據(jù)的
G06F17-30 .信息檢索;及其數(shù)據(jù)庫結(jié)構(gòu)
G06F17-40 .數(shù)據(jù)的獲取和記錄
G06F17-50 .計(jì)算機(jī)輔助設(shè)計(jì)
- 數(shù)據(jù)顯示系統(tǒng)、數(shù)據(jù)中繼設(shè)備、數(shù)據(jù)中繼方法、數(shù)據(jù)系統(tǒng)、接收設(shè)備和數(shù)據(jù)讀取方法
- 數(shù)據(jù)記錄方法、數(shù)據(jù)記錄裝置、數(shù)據(jù)記錄媒體、數(shù)據(jù)重播方法和數(shù)據(jù)重播裝置
- 數(shù)據(jù)發(fā)送方法、數(shù)據(jù)發(fā)送系統(tǒng)、數(shù)據(jù)發(fā)送裝置以及數(shù)據(jù)結(jié)構(gòu)
- 數(shù)據(jù)顯示系統(tǒng)、數(shù)據(jù)中繼設(shè)備、數(shù)據(jù)中繼方法及數(shù)據(jù)系統(tǒng)
- 數(shù)據(jù)嵌入裝置、數(shù)據(jù)嵌入方法、數(shù)據(jù)提取裝置及數(shù)據(jù)提取方法
- 數(shù)據(jù)管理裝置、數(shù)據(jù)編輯裝置、數(shù)據(jù)閱覽裝置、數(shù)據(jù)管理方法、數(shù)據(jù)編輯方法以及數(shù)據(jù)閱覽方法
- 數(shù)據(jù)發(fā)送和數(shù)據(jù)接收設(shè)備、數(shù)據(jù)發(fā)送和數(shù)據(jù)接收方法
- 數(shù)據(jù)發(fā)送裝置、數(shù)據(jù)接收裝置、數(shù)據(jù)收發(fā)系統(tǒng)、數(shù)據(jù)發(fā)送方法、數(shù)據(jù)接收方法和數(shù)據(jù)收發(fā)方法
- 數(shù)據(jù)發(fā)送方法、數(shù)據(jù)再現(xiàn)方法、數(shù)據(jù)發(fā)送裝置及數(shù)據(jù)再現(xiàn)裝置
- 數(shù)據(jù)發(fā)送方法、數(shù)據(jù)再現(xiàn)方法、數(shù)據(jù)發(fā)送裝置及數(shù)據(jù)再現(xiàn)裝置





