高手请进,高分求教SQLLDR的数据过滤问题,要求按某张表中的数据过滤,解决问题的人才给分

chooser 2004-10-23 04:00:25
SQLLDR的控制文件中可以用
when (14-20) = '102000'进行常量型过滤,问题是如果过滤的值列表来自一张表,怎么完成。
when (14-20) in (select code from codelist)
这种写法是不通过的。
这里不考虑控制文件动态生成的做法。
...全文
572 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
qiansl 2004-10-26
  • 打赏
  • 举报
回复
导入的工具还是挺多的,建议你还是,先导入数据库,再进行筛选。
snowy_howe 2004-10-26
  • 打赏
  • 举报
回复
个人感觉没什么好的办法。如果有1:99那样的数据比例,也不推荐导入后再过滤的方法。
多组织些人,在EXCEL里过滤好了再导入吧。(EXCEL的有些功能还挺好用的)
zhaokeke2004 2004-10-26
  • 打赏
  • 举报
回复
先导入,再过滤好了.
ATGC 2004-10-25
  • 打赏
  • 举报
回复
提供相关数据文件。表结构。俺帮你搞掂。。
chooser 2004-10-25
  • 打赏
  • 举报
回复
不是数据来源于一张表,只是过滤字段来自于一张表。
举个学术点的例子,全校学生的成绩数据文件来了,我作为班主任,只管心一个班学生的成绩,于是根据我班的学生学号(存在一张数据表中)进行过滤,只导入本班成绩。
ATGC 2004-10-25
  • 打赏
  • 举报
回复
不明白楼主得意思,如果你数据来自一张表
为啥不用
insert into table
select from table
的形式?

如果你要做成你想要的格式,而sql语句和sqlldr都无法实现
那你可以写程序实现啊
chooser 2004-10-25
  • 打赏
  • 举报
回复
感谢各位指点,我很同意zmgowin(隐者(龙祖宗)) 的说法,但心理上却不太愿意接受,因为我需要导入的仅仅是文本数据量的1%,而数据量又比较大,两个数量级的存储以及速率差异诱惑实在太大了。
对于数据文件的生成,我们原打算在源数据系统(异构系统,而且网络隔离)过滤,但正因为过滤条件来自我系统的一张表,才不得不放弃了这个设想。
二次处理倒是除了动态控制文件的另一思路,不过当前这个系统中批量处理采用的是模块式结构,与主控模块间的接口只能是CTL文件,所以得去在主控模块处进行特殊处理。
真是难为大家了。
感谢抬贴,会赠分相谢
zmgowin 2004-10-24
  • 打赏
  • 举报
回复
sqlldr的直接路径加载就不用说了,效率虽高但功能上就作了太多的限制,就sqlldr的一般数据加载来说,我们知道它实际上就是读取文本中的数据,然后构造一条一条的sql,做的是insert操作,
而对整条记录的过滤,sqlldr只提供了skip和when,很明显这两种方法都是无法满足你的这种需求的
when操作实际上就是在读取文本数据中所进行字符之间的比较,与数据库中的数据是没有什么联系的,所以会有后面只能接字符串和16位字符的限制,所以上面的写法会有问题
如果要实现你的这种目的,光靠sqlloader估计是没什么希望了,如果要实现类似的功能,我想我们可以在导出的文本数据上或者在将文本导入后再进行二次处理都应该是可以接受的。

说的不对的地方,大家多指正。
biliky 2004-10-24
  • 打赏
  • 举报
回复
没用过sqlldr,学习。
wupangzi 2004-10-24
  • 打赏
  • 举报
回复
实在抱歉,眼花!
lialin 2004-10-24
  • 打赏
  • 举报
回复
不会用过滤,不过可以考虑先把全表导入,然后再从表中过滤,不是更方便么?
ATGC 2004-10-24
  • 打赏
  • 举报
回复
"问题是如果过滤的值列表来自一张表"
==================================

既然这样,为什么不用如下的方法?
insert into table_1 ...
select xxx from table_2

xbm2008 2004-10-24
  • 打赏
  • 举报
回复
俺是来学习的, 但是楼上的,你的函数sqlldr能认识吗?
wupangzi 2004-10-23
  • 打赏
  • 举报
回复
写个函数来控制吧!

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧