DB2中的数据移动——装入
2007-05-20 16:19:24 来源:WEB开发网例十二:从光标类型文件中进行装入
定义一个cursor
declare mycur cursor for select * from org
创建一个新表,结构与cursor相容
create table org2 like org
从cursor中装入
load from mycur of cursor insert into org2
除了可以从cursor中装入,还可以从文件、管道、设备中进行装入。而导入命令只能从文件中导入。
例十三:关于异常表
由用户定义的异常表可以用于存储不遵循唯一约束和主码约束的行。如果装入的时候没有指定异常表,则违反唯一约束的行将被丢弃并且将不再有机会恢复或修改。
用SAMPLE数据库中的STAFF表做实验
1. 创建一个结构与STAFF表相同的表STAFF1
CREATE TABLE STAFF1 LIKE STAFF
2. 把STAFF表中的一部分数据插入到STAFF1中
INSERT INTO STAFF1 SELECT * FROM STAFF WHERE ID<=160
3. 再创建一个结构与STAFF1相同的表STAFFEXP,作为异常表
CREATE TABLE STAFFEXP LIKE STAFF1
4. 给该异常表添加一列,因为异常表和普通表相比,前面的结构都相同,就是最后多出一列或两列(列名任意),第一列是时间戳类型,记录异常记录插入的时间,第二列是大文本类型(至少为32K大小),保存导致该条记录被拒绝的特定约束信息。本例中只添加一个时间戳列。
ALTER TABLE STAFFEXP ADD COLUMN TIME TIMESTAMP
5. 为STAFF1表创建一个唯一索引
CREATE UNIQUE INDEX IDXSTAFF ON STAFF1(ID)
6. 先运行导出命令做出一个文本文件
EXPORT TO D:STAFF.TXT OF DEL SELECT * FROM STAFF
7. 然后运行装入命令把数据再装入到STAFF1表中
LOAD FROM D:STAFF.TXT OF DEL INSERT INTO STAFF1 FOR EXCEPTION STAFFEXP
更多精彩
赞助商链接