成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

在DB2中正確導出LOB數據

數據庫 數據庫運維
在DB2數據庫中,由于某些需求,數據庫中會采用LOB數據類型,需要數據時就需要導出LOB數據,本文將向您詳細介紹。

如現在有一張員工信息的表(USER_INFO)表。在這張表中有三個字段,分別為員工編號、員工姓名、員工身份證復印件等等。由于員工身份證復印件其容量比較大,為此數據庫中采用的是LOB數據類型。當需要將這張表格中的數據導出到特定文件中的時候,只要這些身份證復印件的容量超過32KB的話,則在導出的目標文件中是看不到這些身份證復印件的。在導出的時候,系統會將這些身份證復印件保存在用戶指定的文件夾內。而在導出地目標文件中,只有這些復印件對應的名字而已。所以說,如果一個表中有LOB數據類型,在導出到特定格式的文件中時,就需要區別對待。

如果某張表帶有LOB類型的數據,此時在書寫導出語句的時候,就需要特別的注意。如需要按如下的格式來書寫導出LOB數據的語句:

  1.      Export to user_info.del of del   
  2.   Lob to d:\photo1,d:\photo2 Lobfile p1,p2 modifiled by lobsinfile  
  3.  
  4.   Select * from user_info.  

一、導出LOB數據表與普通表相比的一些特殊選項。

跟普通的導出語句相比,在導出帶有LOB數據類型的數據時,在語句中多了Lob to d:\photo1,d:\photo2 Lobfile p1,p2 modifiled by lobsinfile這么一條語句。其中選項LOB TO定義的是LOB文件要存儲的路徑。在定義這個路徑的時候,用戶可以定義多個目錄。即可以指定一個使用逗號分隔符的目錄列表來定義其文件存儲的位置。如果沒有定義目錄的話,則數據庫會采用當前目錄作為這個LOB文件存儲的位置。跟普通的操作系統目錄一樣,不同目錄中的LOB文件名字可以不同。但是同一目錄中的LOB文件名字必須唯一。第二個需要指定的是LOB文件的命名規則。由于在導出數據的時候,會產生很多的LOB文件。而這些數據庫自動創建的文件必須要具有文件的名字。此時數據庫管理員必須要指定這些LOB文件的命名規則。這個命名規則主要是利用可選項LOBFILE來確定。通過這個可選項,數據庫管理員可以提高一個使用逗號分隔的基本名稱列表。操作系統就會根據這些名字來生成LOB文件的名字。需要注意的是,此時數據庫管理員提供的只是一個基本的名稱,或者說只是LOB文件名的前綴。系統在生成LOB文件的時候,會自動在這個基本名稱(或者叫做前綴)的后面加上3位數字的擴展。如上面筆者提供了p1作為LOB文件名的擴展,那么其最后生成的文件名就可能使p1001、p1002等等。可見系統管理員提供一個文件前綴名,系統就會自動擴展出999個可用的LOB文件名。因為操作系統會在LOB文件前綴后面加上3位阿拉伯數字的擴展名。這個選項跟目錄選項一樣是可選的。如果用戶沒有指定可用的文件基本名稱,則DB2數據庫會以db2exp作為基本的文件擴展名。然后在這個名字后面采用3位數字的擴展名,生成1000個可用的LOB文件的文件名字。

最后需要注意的是,如果在將某個表導出到特定文件的時候,想要分離文件導出LOB的時候,即將LOB文件與其他信息分開存放,還需要在導出語句中加入一個特殊的關鍵字。二、確定可用的文件名。

在將LOB數據類型導出的時候,數據庫系統會在用戶指定的目錄中創建文件用來保存這些LOB數據類型。在數據庫中一個LOB數據段就需要創建一個文件。也就是說,如果表中有2個字段采用的是LOB數據類型,而這個表有2萬條記錄的話,那么在導出的時候就會創建4萬個文件。而一個文件對應一個文件名字,所以數據庫管理員必須要保證有4萬個可用的文件名字(注意不是文件基本名字)。如果在導出的時候,LOB數據類型太多,現有可用的文件名字不夠使用的話,那么導出作業就會以失敗告終。

為此在導出數據之前,數據庫管理員需要評估一下數據表中LOB數據段的數量。然后根據這個數量來確定到底需要有多少個可用的文件名字。然后根據這個數量來確定存儲的目錄與文件基本名稱的數量。如上面這個例子所示,最終的可用文件名字有多少呢?

首先數據庫管理員需要知道的,一個基本名稱可以通過三個阿拉伯數字擴展,得到1000個文件名字。然后同一個文件名字可以在不同的目錄中使用。也就是說,上面指定的目錄中,目錄不同,文件名可以不同。只要保證同一個文件夾內部要有重名的文件即可。那么,兩個文件基本名稱,兩個目錄,再加上文件名字擴展的話,可以得到4000個可用的文件名字。這里有一個簡單的計算公式,就是文件基本名稱的數量*定義目錄的數量*1000,最后得到的結果就是可用的文件名字數量。如果最后生成的LOB文件的數量小于這個文件可用數量的話,那么就可以正常導出。但是如果表中包含的LOB文件數量超過了這個可用的文件名數量,即使超過了一個,也會因為目的LOB文件得不到可用的文件名字而導致導出失敗。當失敗的時候,很難查詢到底是哪個LOB文件沒有導出。為此在導出之前,最好能夠預計到可能需要的文件名字數量。其實這個預算也是比較簡單的。至需要知道需要導出的表中有多少列是LOB數據類型的,然后再乘以記錄數即可。一般情況下,文件的可用數量只可以比實際的LOB文件多,而不能夠比起少。多了不會出文件,但是如果少了的話,則會導致數據導出失敗。

有時候為了避免這個問題的出現,數據庫管理員不得不增加LOB文件的目標目錄,或者增加LOB基本文件名的數量,使得導出能夠為所有包含在SELECT語句的結果集合中的LOB數據生成足夠多的文件名字。這里需要注意的是,數據庫管理員不可以增加擴展的位數。即文件名擴展只可以用到3位阿拉伯數字。另外需要注意的是,由于LOB數據類型的數據都比較大,將他們導出到特定文件中的時候,往往需要花費比較長的時間。為此筆者并不建議一下子就將導出LOB數據類型導出來。在Select語句中加入適當的限制條件,可以分批導出LOB文件,以減少每次導出的時間。如導出所有員工的身份證復印件時,可以按性別分為兩類或者按部分來進行分類。這有兩個好處。一是可以縮短每次導出的時間,即使中間遇到問題也可以控制在最小的范圍之內。二是導出的LOB文件名是隨機的。為此分批導出的話,在尋找對應LOB文件的時候,會方便許多。

 

【編輯推薦】

  1. DB2外部文件格式淺析
  2. DB2數據庫設計的三個建議
  3. 解析DB2與非DB2數據庫之間遠程復制
  4. DB2數據庫基本操作指令30條
  5. 如何修改DB2服務器主機名
責任編輯:佚名 來源: IT專家網
相關推薦

2015-10-23 16:35:11

DB2導出LOB

2010-08-04 15:10:47

2010-09-06 09:13:42

DB2表格

2011-03-14 16:42:54

DB2 UDB監控死鎖

2010-08-20 11:16:39

DB2 優化器

2013-01-18 10:44:30

IBMdW

2010-09-07 16:11:19

執行DB2命令

2010-07-30 15:44:04

DB2數據庫

2010-07-30 14:49:24

IBM DB2數據庫

2010-02-04 09:50:11

DB2Oracle數據

2010-08-17 15:24:43

DB2數據移動

2010-11-04 13:25:16

DB2在線導出

2010-07-30 09:57:31

2010-08-26 16:00:31

DB2數據庫安裝

2010-08-11 09:14:33

DB2數據類型

2010-08-06 13:20:00

DB2鎖等待

2010-08-18 16:45:40

IBM DB2 Cat

2010-08-11 08:39:57

DB2 數據庫

2010-08-31 16:59:12

DB2UPDATE

2010-08-02 14:03:49

DB2驅動類型
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品视频一二三区 | 日韩在线电影 | 欧美淫| 亚洲一区三区在线观看 | 欧美精品片 | 综合二区 | 色播久久久 | 久久精品国产亚洲 | 91精品国产91久久久久久最新 | 久久国产精品-久久精品 | 一区二区三区国产好的精 | 国产91丝袜在线18 | 国产一区二区 | 欧美综合一区 | 精品一区二区久久久久久久网精 | 一区二区在线 | 欧美日产国产成人免费图片 | 99久久影院 | 日屁视频 | 亚洲视频免费在线观看 | 狠狠干综合视频 | 在线观看一区 | 天天干视频 | 91精品国产综合久久婷婷香蕉 | 日韩在线一区二区 | 国产精品呻吟久久av凹凸 | 中文字幕在线不卡播放 | 成人在线一区二区三区 | 亚洲欧美日韩精品久久亚洲区 | 在线观看国产91 | 久久国产精品99久久久久 | 免费观看一级特黄欧美大片 | 一级免费毛片 | 激情 亚洲| 日韩视频一区在线观看 | 欧美老少妇一级特黄一片 | 性视频一区 | 青娱乐一区二区 | 久久精品国产久精国产 | 日韩成人免费视频 | 亚洲激精日韩激精欧美精品 |