程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> DB2數據庫 >> DB2教程 >> DB2中的數據移動(二)

DB2中的數據移動(二)

編輯:DB2教程

數據的導入

例七:把C盤根目錄下的org.txt文件中的數據導入到org表中
import from c:\org.txt of del insert into org

導入命令和導出命令的格式基本上處於對應的關系,import對應export,from對應to,文件名和文件格式代表的含義相同,但是導入命令支持ASC格式的文件,而導出命令不支持。另外,在導出命令的最後是一個SQL語句,用於選擇要導出的數據,而導入命令最後不是SQL語句,而是插入數據的方式以及目標表名稱。

例八:從ASC格式文件中導入數據
import from c:\org2.txt of asc method l(1 5,6 19,20 25,26 37,38 50) insert into org
其中 method l 子句用於指定文本文件中每一個字段的起始位置和終止位置,每個起始位置和終止位置間用空格分開,字段之間用逗號分開。
除了l方法之外,還有n方法和p方法,下面會敘述。

例九:利用n方法導入數據,並且創建新表。
首先導出一個用例文件:
export to d:\org.ixf of ixf method n(a,b,c,d,e) select * from org
這樣org.ixf文件中有五列數據,對應的列名分別為a、b、c、d、e
然後在從該文件中導入數據到一個新表中
import from d:\org.ixf of ixf method n(d,e,b) replace_create into orgtest
該命令從文件中選取三列導入到表中,順序可以不按照文件中原有的列的順序。replace_create方式的敘述見下。

插入方式有:
INSERT 方式——在表中現有數據的基礎之上追加新的數據。
INSERT_UPDATE 方式——這種方式只能用於有主鍵的表,如果插入的數據與原有數據主鍵不沖突,則直接插入,如果主鍵沖突,則用新的數據代替原有數據。
REPLACE 方式——先把表中現有的數據都刪除,然後向空表中插入數據。
REPLACE_CREATE 方式——表示如果表存在,則先把表中的數據都刪除,然後向空表中插入數據;如果表不存在,則先根據文件中的字段創建表,然後再向表中插入數據。這種方式只能把IXF格式的文件中的數據插入到表中。

例十:利用p方法導入數據
import from d:\org.ixf of ixf method p(4,5,2) replace into orgtest
該例子執行的效果和例九類似,只是把n方法換成了p方法,p方法後面的列表中指明列的序號即可,不需要指明列名。另外,此例中使用了replace方式插入數據,這會把表中現有的數據都刪除,然後向空表中插入數據。

例十一:關於空值的導入
對於ixf格式的文件,導入空值非常方便,因為裡面已經記錄了空值的信息。但是,對於ASC格式文件就有一定的難度了,因為DB2會直接插入空格,而不是空值。為此,DB2提供了一個子句進行控制:NULL INDICATORS

import from c:\org2.txt of asc MODIFIED BY nullindchar=# method l(1 5,6 19,20 25,26 37,38 50) NULL INDICATORS(0,0,0,0,38 ) replace into org

在這個例子中,NULL INDICATORS子句後面是一個列表,表示前面四個字段都不會存在空值,而第五個字段從38列開始,可能存在空值,而 MODIFIED BY nullindchar=# 子句表示在文件中第五個字段如果遇到 # 號,則表示為空值。

就說這些吧,拋磚引玉,希望大家補充,下一次談一談Load命令。
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved