范春榮
(大慶油田第七采油廠第二油礦,黑龍江 大慶 163000)
網(wǎng)絡(luò)與數(shù)據(jù)庫技術(shù)的發(fā)展,促使油田信息化的不斷進(jìn)步與完善。過去由于受到技術(shù)的限制,我廠應(yīng)用的軟件大部分為單機(jī)版軟件,而且數(shù)據(jù)庫以小型數(shù)據(jù)庫居多,數(shù)據(jù)庫表以DBF格式的居多,現(xiàn)在軟件大多需要更新?lián)Q代,新的開發(fā)數(shù)據(jù)庫系統(tǒng)都集成到以B/S方式為基礎(chǔ)的ORACLE這類大型數(shù)據(jù)系統(tǒng)上,這就涉及到了原有數(shù)據(jù)庫的數(shù)據(jù)與現(xiàn)有數(shù)據(jù)庫的相互轉(zhuǎn)換。
PowerBuilder通過對(duì)不同數(shù)據(jù)庫采用不同接口的形式同時(shí)支持多種關(guān)系數(shù)據(jù)庫,并提供了數(shù)據(jù)管道技術(shù),這是實(shí)現(xiàn)兩個(gè)數(shù)據(jù)源之間數(shù)據(jù)傳輸?shù)囊环N常用數(shù)據(jù)處理技術(shù),它在數(shù)據(jù)庫系統(tǒng)轉(zhuǎn)換,原始數(shù)據(jù)錄入,數(shù)據(jù)導(dǎo)出,移動(dòng)存儲(chǔ),分布式數(shù)據(jù)庫復(fù)制等方面應(yīng)用非常廣泛。通過數(shù)據(jù)管道,應(yīng)用程序能夠在不同的數(shù)據(jù)庫之間移動(dòng)數(shù)據(jù),也就是說,可以把一個(gè)或多個(gè)源表中的數(shù)據(jù)復(fù)制到新表或已存在的目的表中,可以刪除目的表及其數(shù)據(jù)后重建目的表,也可以只把最新數(shù)據(jù)傳送到目的表中。而且,這種數(shù)據(jù)遷移既可以在同一個(gè)數(shù)據(jù)庫的不同數(shù)據(jù)表之間進(jìn)行,也能在不同數(shù)據(jù)庫管理系統(tǒng)的不同數(shù)據(jù)庫之間進(jìn)行。除了遷移常規(guī)數(shù)據(jù)(比如數(shù)值型、字符型等)外,數(shù)據(jù)管道還可以在數(shù)據(jù)庫之間遷移圖像、聲音之類的大二進(jìn)制對(duì)象(Blob型數(shù)據(jù))。用數(shù)據(jù)管道復(fù)制數(shù)據(jù)時(shí),可以復(fù)制表中的所有數(shù)據(jù),也可以復(fù)制部分?jǐn)?shù)據(jù),甚至還可以復(fù)制出加工了的數(shù)據(jù)。
2.1 具體操作方法如下
在使用數(shù)據(jù)管道前我們首先要?jiǎng)?chuàng)建數(shù)據(jù)管道對(duì)象。創(chuàng)建數(shù)據(jù)管道對(duì)象時(shí),需要確定源數(shù)據(jù)庫,目的數(shù)據(jù)庫,要從中復(fù)制數(shù)據(jù)的源表,要存放數(shù)據(jù)的目的表,要執(zhí)行的數(shù)據(jù)管道操作類型,運(yùn)行數(shù)據(jù)管道事務(wù)提交的頻率,容許出現(xiàn)的最多錯(cuò)誤數(shù),是否要把表的擴(kuò)展性一起傳送到目的數(shù)據(jù)庫中。
2.1.1 啟動(dòng)畫筆欄的“Pipeline”圖標(biāo),系統(tǒng)顯示“Select Data Pipeline”對(duì)話框(如圖);
2.1.2 修改某數(shù)據(jù)管道對(duì)象時(shí),通過單擊從列出的對(duì)象中選擇要修改的數(shù)據(jù)管道對(duì)象,然后單擊“OK”按鈕,進(jìn)入數(shù)據(jù)管道畫筆工作區(qū);要?jiǎng)?chuàng)建新的數(shù)據(jù)管道對(duì)象時(shí),單擊“New”按鈕,系統(tǒng)顯示“New Data Pipeline”對(duì)話框(如圖);
1.1.3 “New Data Pipeline”對(duì)話框分成了兩個(gè)組:“Data Source”組框用于選擇數(shù)據(jù)源,這些數(shù)據(jù)源的作用與創(chuàng)建數(shù)據(jù)窗口時(shí)數(shù)據(jù)源的作用完全相同,它們生成指定的SQL SELECT語句;“Database Connections”組框用于指定提取數(shù)據(jù)源表所在數(shù)據(jù)庫的數(shù)據(jù)庫配置和目的表所在數(shù)據(jù)庫的數(shù)據(jù)庫配置,如果所需的數(shù)據(jù)庫配置沒有在列表框中列出,那么必須使用數(shù)據(jù)庫配置畫筆定義相應(yīng)的數(shù)據(jù)庫配置。
1.1.4 選擇了源數(shù)據(jù)庫、目的數(shù)據(jù)庫以及數(shù)據(jù)源后,單擊“OK”按鈕,系統(tǒng)根據(jù)所選數(shù)據(jù)源的不同,出現(xiàn)不同的畫面,按定義數(shù)據(jù)窗口數(shù)據(jù)源相似的方法定義數(shù)據(jù)源。
1.1.5 定義了數(shù)據(jù)管道對(duì)象的各種選項(xiàng)后,就可以在數(shù)據(jù)管道畫筆中運(yùn)行數(shù)據(jù)管道了。單擊數(shù)據(jù)管道畫筆工具欄上的“Execute”圖標(biāo)或從“Design”菜單中選擇“Execute”菜單項(xiàng)。
對(duì)于耗時(shí)較長的運(yùn)行過程,隨時(shí)都可以終止數(shù)據(jù)管道的運(yùn)行,方法很簡單:單擊數(shù)據(jù)管道畫筆工具欄“Execute”圖標(biāo)位置上的圖標(biāo),此時(shí)圖標(biāo)的圖案是只紅色小手。數(shù)據(jù)管道運(yùn)行結(jié)束后,小手圖案又變成“Execute”圖標(biāo)圖案。
VFP6.0提供Oracle和SQL Server兩個(gè)升遷向?qū)А_@兩個(gè)升遷向?qū)Э梢詣?chuàng)建Oracle數(shù)據(jù)庫或SQL Server數(shù)據(jù)庫,實(shí)現(xiàn)數(shù)據(jù)庫各表中的功能。VFP的數(shù)據(jù)庫在升遷之前必須把所有的表都放在數(shù)據(jù)庫里,自由表不能直接升遷,而實(shí)際上升遷上去的又只是表,數(shù)據(jù)庫本身不能轉(zhuǎn)到ORACLE里。要把VFP數(shù)據(jù)升遷到ORACLE上,必須先在ORACLE里建立相應(yīng)的數(shù)據(jù)庫。
具體操作方法如下:
2.1 先取得要導(dǎo)入的ORACLE的服務(wù)名,例如ORA10
2.2 配置ODBC,利用Oracle的服務(wù)ORA10創(chuàng)建DSN,命名為TEST。
2.3 啟動(dòng)VFP,打開項(xiàng)目數(shù)據(jù)庫,利用DSN創(chuàng)建連接Conn_test
2.4 選擇“工具”、“向?qū)А?、“升遷”單擊
(1)選擇 ORACLE 升遷向?qū)?;?)選擇要升遷的本地?cái)?shù)據(jù)庫Library;(3)選擇可用的數(shù)據(jù)源(test)或連接(conn_test);(4)輸入用戶名和口令;(5)選擇要升遷的基表;(6)改變匹配字段的數(shù)據(jù)類型,即本地字段數(shù)據(jù)類型與服務(wù)器字段數(shù)據(jù)類型的映射;(7)選擇表空間 user_data;(8)選擇表空間文件(采用默認(rèn)值);(9)指定簇信息;(10)設(shè)置升遷選項(xiàng);(11)單擊完成
PL/SQL Developer軟件是一個(gè)為 ORACLE數(shù)據(jù)庫開發(fā)存儲(chǔ)單元的集成開發(fā)環(huán)境(IDE),使用PL/SQL Developer可以很方便的管理Oracle數(shù)據(jù)庫。轉(zhuǎn)換數(shù)據(jù)只是其中的極小部分的功能。具體操作如下:
打開PLSQL Developer軟件后,點(diǎn)TABLE,找到要導(dǎo)出的表,右鍵單擊,選擇“Edit Date”,這時(shí)在“SQL”標(biāo)簽的右下角有一個(gè)“Expot Query Results……”的圖標(biāo),單擊后出現(xiàn)菜單“CSV File”,“TSV File”,“HTML File”,“XML File”,選擇“CSV File”后存儲(chǔ)路徑,打開 *.csv文件,另存為*.xls(如圖左)。然后用VFP導(dǎo)入(如圖右)。至此oracle轉(zhuǎn)化為dbf格式完成。
數(shù)據(jù)轉(zhuǎn)換中最重要的工作是建立正確的數(shù)據(jù)庫連接數(shù)據(jù),包括合適的驅(qū)動(dòng)程序和正確的身份認(rèn)證。如果源數(shù)據(jù)庫類型與目標(biāo)數(shù)據(jù)庫類型相差較大轉(zhuǎn)換時(shí),一般可以采用過渡的方法,先將源數(shù)據(jù)庫轉(zhuǎn)成一種通用格式(如文本格式、表格格式或SQL數(shù)據(jù)等),然后再利用通用格式轉(zhuǎn)換成目標(biāo)格式。當(dāng)針對(duì)一些簡單的數(shù)據(jù)轉(zhuǎn)換,也可以用VFP、Access等數(shù)據(jù)庫軟件自帶的導(dǎo)入導(dǎo)出功能來實(shí)現(xiàn)轉(zhuǎn)換。
數(shù)據(jù)轉(zhuǎn)換是一項(xiàng)極為重要的數(shù)據(jù)庫操作技術(shù),它關(guān)系到應(yīng)用系統(tǒng)的可移植和二次開發(fā)能力。數(shù)據(jù)轉(zhuǎn)換可以很好的解決信息技術(shù)的發(fā)展和數(shù)據(jù)庫的升級(jí)帶來的問題,能夠最大限度的利用現(xiàn)有資源,避免重復(fù)開發(fā)的浪費(fèi)。數(shù)據(jù)轉(zhuǎn)換靈活應(yīng)用將會(huì)給油田應(yīng)用軟件開發(fā)帶來極大的便利。
[1]馮曉利,葉曉虎.《學(xué)用Visual FoxPro 6.0中文版》清華大學(xué)出版社,1999,07,01.
[2]盧守東.《PowerBuilder數(shù)據(jù)庫應(yīng)用開發(fā)技術(shù)》清華大學(xué)出版社,2006,06,01.