当前位置: 首页 > 科技观察

DB2中的数据移动(一)

时间:2023-03-15 10:29:35 科技观察

DB2中所谓的数据移动包括:1.数据导入(Import)2.数据导出(Export)3.数据加载(Load)导入和加载都是用DB2相关命令将数据以一定格式的文件保存到数据库中的表中。导出是指将DB2数据库的一个表中的数据保存到一定格式的文件中进行数据移动:如果要在不同的数据库管理系统之间传输数据,数据移动通常是最实用的方法,因为任何数据库管理系统支持几种常用的文件格式。通过这个通用接口,很容易实现数据的传输。在这三个命令中,Export是最简单的,因为从表向文件传输数据时通常不会出现错误或非法数据。在讲解命令之前,先介绍一下文件格式。DB2数据移动使用的文件格式有四种:1.ASC——UndelimitedASCII文件,是一种ASCII字符流。数据流中的行由行定界符分隔,一行中的每一列由开始和结束位置定义。Forexample:10HeadOffice160CorporateNewYork15NewEngland50EasternBoston20MidAtlantic10EasternWashington38SouthAtlantic30EasternAtlanta42GreatLakes100MidwestChicago51Plains140MidwestDallas66Pacific270WesternSanFrancisco84CIIASAsWesternDenver2.DRowsinadatastreamareseparatedbyrowdelimiters,andcolumnvalues??withinarowareseparatedbycolumndelimiters.文件类型修饰符可以用来修改这些分隔符的默认值。例如:10,"HeadOffice",160,"Corporate","NewYork"15,"NewEngland",50,"Eastern","Boston"20,"MidAtlantic",10,"Eastern","Washington"38,"SouthAtlantic",30,"Eastern","Atlanta"42,"GreatLakes",100,"Midwest","Chicago"51,"Plains",140,??"Midwest","Dallas"66,"Pacific",270,"Western","SanFrancisco"84,"Mountain",290,"Western","Denver"3.WSF——(worksheetformat)是一种工作表格式,用于与Lotus系列软件进行数据交换。4.PC/IXF——是IntegratedExchangeFormat(IXF)数据交换架构的改编版本,由一系列可变长度的记录组成,包括表头记录、表记录和表中每一列的列描述符记录以及表中每一行的一个或多个数据记录。PC/IXF文件记录由包含字符数据的字段组成。第1部分:数据导出(Export)例1:将Org表中的所有数据导出到文件C:\ORG.TXT中。exporttoc:\org.txtofdelselect*fromorg其中,ofdel表示要导出的文件类型,本例中导出为非分隔文本文件;下面的select*fromorg是一条SQL语句,这条语句的查询结果是Thedatatoexport。例2:改变del格式文件的格式控制符exporttoc:\staff.txtofdelmodifiedbycoldel$chardel''decplusblankselect*fromstaff本例中,修饰子句用于控制各种符号,coldel代表字段间的间隔符。默认情况下是逗号,现在改为$符号;chardel表示用什么符号来引用字符串字段,默认用一对双引号括起来,现在用一对单引号括起来;decplusblank表示对于小数数据类型,使用空格而不是前导加号,因为默认情况下加号或减号是小数数据的前缀。例3:导出数据到ASC格式的文件Export命令不支持ASC格式的文件,所以如果要导出像ASC这样的常规格式,需要程序员进行转换操作。思路是将各种数据类型转换成固定的一长串,然后将要导出的字段组合成一个字段。例如创建表n,结构如下:createtablen(aint,bdate,ctime,dvarchar(5),echar(4),fdouble)然后插入两条数据:insertintonvalues(15,'2004-10-21','23:12:23','abc','hh',35.2)insertintonvalues(5,'2004-1-21','3:12:23','bc','hhh',35.672)要把这两个数据以常规格式导出到一个文件中,进行如下操作:exporttoc:\test.txtofd