首先简单的介绍下connect by语句的使用方法,connect by语句是层次查询中最普遍使用的一种方法,他可以很方便的查询出在有父子关系的表中的所有数据,不多少还是举个例子:
select * from fm_admindept
start with pk=20060517100000
connect by prior pk=parentadmindeptpk
and deleted='0' order by parentadmindeptpk desc
需要注意这里的start with以哪一级开始,以及connect by时的父子关系。
今天还使用了sql*loader来装载数据(不是很巨量的):
关键是数据文件的整理花了2个多小时,以下是自己的控制文件写下来里面也有几个地方需要注意的
LOAD DATA
INFILE 'datafile.csv' --(这里是数据文件的位置,保存为csv文件(逗号分隔的文件))
INSERT INTO TABLE table_name --(欲装载的目的表)
INSERT/APPEND/REPLACE --(insert为默认的方式,他要求目的表在装载时数据为空,append是在表原有的数 据上追加,replace替换原有的数据,还有一个truncate与replace一样)
FIELDS TERMINATED BY ','
TRAILING NULLCOLS --(这个语句很关键是说你装载时也装载那些空数据不写这个语句会报一个错误)
(
COL1,
COL2,
COL3 CHAR(50000), --注意这个的这个CHAR(50000)也很关键因为LDR默认的装载字符好像是255太小了,如果你的数据文件里的COL3是字符型数据且都比较大的话,不加这个通常会报错。
COL4 DATE 'YYYY-MM-DD HH24:MI:SS' 这里如果你的目的表COL4是日期类型的数据且数据文件的日期格式为'YYYY-MM-DD HH24:MI:SS'这个,可以这样限制,也可以使用其他的形式'yyyy-mm'or'yyyy-mm-dd
)
控制文件基本上就是这样
在DOS下写装载命令时也要注意:
SQLLDR control=cnname(控制文件).ctl log=name.log bad=name.bad
errors=5000这里一定要把日志文件与坏文件记录好,因为那些不符合规范没装载进去的记录都在这里,不过如果datafile整理的好,控制文件限制的也比较好的话一般都没有坏数据。哈哈我今天装时就10几条坏数据。(5W记录
)这两天没时间看CG文档,昨天晚上回来看了一点没做笔记,提醒自己要坚持到底!!!杜绝虎头蛇尾
阅读(2444) | 评论(0) | 转发(0) |