如何復(fù)制BLOB的數(shù)據(jù)類(lèi)型_第1頁(yè)
如何復(fù)制BLOB的數(shù)據(jù)類(lèi)型_第2頁(yè)
如何復(fù)制BLOB的數(shù)據(jù)類(lèi)型_第3頁(yè)
如何復(fù)制BLOB的數(shù)據(jù)類(lèi)型_第4頁(yè)
全文預(yù)覽已結(jié)束

付費(fèi)下載

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、標(biāo)題如何將DB2數(shù)據(jù)庫(kù)中的大對(duì)象(BLOB,CLOB)數(shù)據(jù)類(lèi)型復(fù)制到Oracle數(shù)據(jù)庫(kù)中 環(huán)境Windows, db2 8.2, Websphere information integrator 8.2(以下簡(jiǎn)稱(chēng)WII)問(wèn)題描述WII中對(duì)LOB對(duì)象的復(fù)制支持僅限于DB2的數(shù)據(jù)庫(kù)。具體的限制請(qǐng)參考:對(duì)非DB2數(shù)據(jù)庫(kù)的數(shù)據(jù)復(fù)制, 不直接支持LOB(BLOB,ClOB)等大對(duì)象數(shù)據(jù)類(lèi)型,但在實(shí)際應(yīng)用中,用戶(hù)需要復(fù)制的表中有可能有BLOB等大對(duì)象數(shù)據(jù),如果數(shù)據(jù)目標(biāo)為Oracle,這類(lèi)大對(duì)象復(fù)制的需求可通過(guò)對(duì)WII的復(fù)制進(jìn)行特殊配置實(shí)現(xiàn)。下面以一個(gè)實(shí)際的例子來(lái)說(shuō)明如何將DB2中的BLOB數(shù)據(jù)類(lèi)型復(fù)制到O

2、racle中。解答基本思路:通過(guò)WII的聯(lián)邦能力,先把DB2數(shù)據(jù)源表中的非BLOB字段復(fù)制到目標(biāo)表中,對(duì)于 BLOB字段,在每個(gè)復(fù)制周期完成后,增加一個(gè)對(duì)目標(biāo)記錄BLOB字段的update操作,直接把數(shù)據(jù)源的BLOB數(shù)據(jù)更新到數(shù)據(jù)目標(biāo)的BLOB數(shù)據(jù)中。其中的關(guān)鍵步驟就是如何區(qū)分在數(shù)據(jù)目標(biāo)表中,哪些記錄需要更新,哪些不需要更新。為解決這個(gè)問(wèn)題,可以在數(shù)據(jù)目標(biāo)表上增加一個(gè)標(biāo)志字段flag,該字段對(duì)應(yīng)復(fù)制處理的計(jì)算字段,賦為常量值“1”, 然后在更新數(shù)據(jù)目標(biāo)BLOB字段的Update語(yǔ)句的Where條件中使用此標(biāo)志字段進(jìn)行比較,flag 為“1”的記錄則進(jìn)行變量BLOB更新,在更新BLOB數(shù)據(jù)的同時(shí)

3、,將該標(biāo)志字段置為非“1”的值,以避免重復(fù)更新。具體的解決步驟:1)假設(shè)有一個(gè)需要進(jìn)行復(fù)制的DB2源表EMP_PHOTO 有以下3個(gè)字段,其中主鍵為(EMPNO, PHOTO_FORMAT)DB2 CREATE TABLE EMP_PHOTO ( EMPNO CHAR(6) NOT NULL , PHOTO_FORMAT VARCHAR(10), PICTURE BLOB(102400) , PRIMARY KEY (EMPNO, PHOTO_FORMAT) )2)采用跟普通復(fù)制相同的步驟,分別在DB2源數(shù)據(jù)庫(kù)中創(chuàng)建Capture控制表,在目標(biāo)數(shù)據(jù)庫(kù)Oracle中創(chuàng)建Apply控制表。3)將E

4、MP_PHOTO表注冊(cè)到復(fù)制的數(shù)據(jù)源中。4)定義從數(shù)據(jù)源EMP_PHOTO到Oracle目標(biāo)表的預(yù)定集,假設(shè)Oracle中使用的目標(biāo)表名稱(chēng)為REP.TGEMP_PHOTO,同時(shí)在DB2中產(chǎn)生的目標(biāo)表的昵稱(chēng)為ORA817.TGEMP_PHOTO。5)將EMP_PHOTO添加到復(fù)制成員中,同時(shí)增加計(jì)算列flag,將其設(shè)置為常量值“1”,生成執(zhí)行腳本并運(yùn)行。添加計(jì)算列的過(guò)程如下圖所示: 點(diǎn)擊“添加計(jì)算列”按鈕:在目標(biāo)列中,輸入這個(gè)計(jì)算列的名稱(chēng):FLAG,同時(shí)將這個(gè)計(jì)算列指定成常量1,生成相應(yīng)的腳本,并運(yùn)行。這樣目標(biāo)表中就多了一個(gè)值為常量“1”的 flag 字段。6)在Oracle中復(fù)制的目標(biāo)表為tg

5、emp_photo, 其昵稱(chēng)為ora817.tgemp_photo。由于WII不直接支持BLOB字段類(lèi)型,所以ora817.tgemp_photo中沒(méi)有BLOB字段,我們需要手動(dòng)的在目標(biāo)表中添加這個(gè)列。在目標(biāo)表中增加BLOB字段:set passthru ora817 ;ALTER TABLE REP.TGEMP_PHOTO ADD(PICTURE BLOB );set passthru reset;由于昵稱(chēng) ora817.tgemp_photo已經(jīng)存在了,但是目標(biāo)表的結(jié)構(gòu)已經(jīng)發(fā)生了變化,因此我們需要為復(fù)制的目標(biāo)表重新創(chuàng)建昵稱(chēng),使其包含BLOB列:drop nickname ora817.tg

6、emp_photo;create nickname ora817.tgemp_photo for ora817.REP.TGEMP_PHOTO;完成后,目標(biāo)tgemp_photo表結(jié)構(gòu)如下:EMPNO CHAR(6) not null, PHOTO_FORMAT VARCHAR(10)FLAGintegerPICTURE BLOB(102400) 在預(yù)定集屬性中增加對(duì)BLOB字段更新的update語(yǔ)句:UPDATE ora817.tgemp_photo T SET (flag, picture) = (SELECT 0, picture FROM emp_photo S WHERE S.emp

7、no = T.empno and S. photo_format =T. photo_format and flag = 1);注意,這里的(empno, photo_format)是表的主鍵,Where條件中對(duì)標(biāo)志字段進(jìn)行比較,對(duì)flag為“1”的記錄,將進(jìn)行picture字段的BLOB更新,在更新BLOB數(shù)據(jù)的同時(shí),將該標(biāo)志字段置為非“1”的值,如“0”,以避免重復(fù)更新。另外,要在SQLSTATE欄中添加02000,以允許返回空行。該錯(cuò)誤號(hào)代表的具體信息為:SQLSTATE 02000: 發(fā)生下述異常之一:SELECT INTO 語(yǔ)句或 INSERT語(yǔ)句的子查詢(xún)的結(jié)果為空表。在搜索的 UPDATE 或 DELETE 語(yǔ)句內(nèi)標(biāo)識(shí)的行數(shù)為零。在FETCH 語(yǔ)句中引用的游標(biāo)位置處于結(jié)果表最后

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論