??xml version="1.0" encoding="utf-8" standalone="yes"?>
一Q一个公p辑ּ形式的虚拟表?br />二:一个初始化表?br />三:一个与虚拟表进行完全内q接的辅助表?br />需要用UNION all合ƈ上边3个查询,然后用select从递归输出中得到最l的l果?br />大体上如下Ş?br />with XX(x1,x2,x3) as -------@0
(
select a.s,a.s1 from a ----@1
union all ----@2
select * from a,xx where a.s=xx.x1 ------@3
)
select ... from xx where .... -------@4
@0:为with体,卌拟表
@1:为初始化表,q里需要定义初始化的一些行Q也是你递归的出发点Q或者说父行Q这部分逻辑只执行一ơ,它的l果作ؓ虚拟表递归的初始化内容?br />@2:q里必须用UNION all
@3:q里需要定义递归的条Ӟ辅助表)Q这里定义递归的逻辑Q需要注意的是父行和子行q行q接的时候逻辑一定要清楚父子关系Q不然很Ҏ变成d@环的Q这里首先将初始化表的结果作为条件进行查询,在把执行的结果添加到虚拟表中Q只要这里能查询出来记录Q那么就会进行下一步递归循环?br />@4:q里是对虚拟表的查询语句?br />
例子Q?br />WITH ROOT AS
(
SELECT a.id, a.areaname
FROM AREATB a
WHERE a.id = #id#
UNION ALL
SELECT a.id, a.areaname
FROM AREATB a, ROOT r
WHERE a.id = r.id
)
SELECT id, areaname
FROM ROOT
在控制中心的对象视图H口中,选择所要导l构的数据表Q按?/span>Ctrl?/span>Shift可多选,单击鼠标右键Q选择Q?/span>>生成DDL卛_?/span>
Ҏ?/span>
W一步:打开
DB2
的命令行工具Q在
DB2
安装目录?/span>
BIN
文g夹下新徏一个文件夹
data
Qƈ且进入该目录?/span>
创徏该目录:
mkdir data
q入该目录:
cd data
|
W二步:导出表结构,命o行如下:
db2look -d dbname -e -a -x -i username -w password -o ddlfile.sql
执行成功之后Q你会在刚才新徏的文件夹下找到该
sql
文g?/span>
W三步:
导出数据Q命令行如下Q?/span>
db2move databasename export -u username -p password
xQ导出数据结束?/span>
2导出表中数据
export to [path(?/span>:D:"TABLE1.ixf)] of ixf select [字段(?/span>: * or col1,col2,col3)] from TABLE1;
export to [path(?/span>:D:"TABLE1.del)] of del select [字段(?/span>: * or col1,col2,col3)] from TABLE1;
导入表的数据
import from [path(?/span>:D:"TABLE1.ixf)] of ixf insert into TABLE1;
load from [path(?/span>:D:"TABLE1.ixf)] of ixf insert into TABLE1;
load from [path(?/span>:D:"TABLE1.ixf)] of ixf replace into TABLE1; // 装入数据前,先删除已存在记录
load from [path(?/span>:D:"TABLE1.ixf)] of ixf restart into TABLE1; // 当装入失败时Q重新执行,q记录导出结果和错误信息
import from [path(?/span>:D:"TABLE1.ixf)] of ixf savecount 1000 messages [path(?/span>:D:"msg.txt)] insert into TABLE1;// 其中Q?/span>savecount表示完成?/span>1000条操作,记录一?/span>.
存在自增长字D늚数据导入Q?/span>
load from [path(?/span>:D:"TABLE1.ixf)] of ixf modified by identityignore insert into TABLE1;// 加入modified by identityignore.
解除装入数据Ӟ发生的检查挂?/span>.
SET INTEGRITY FOR TABLE1 CHECK IMMEDIATE UNCHECKED;
命o只对数据通过U束查的表有效,如果执行q不能解除,有必要检查数据的完整性,是否不符合约束条Ӟq试N新整理数据,再执行装入操?/span>.
另外Q对load?/span>importQ字面上的区别是:装入和导入,但仍未理解两者之间的区别.
只是性能?/span>load昄优于import.Q?/span>load 需要更多的权限Q?/span>