高手请进,高分求教SQLLDR的数据过滤问题,要求按某张表中的数据过滤,解决问题的人才给分 俺是来学习的, 但是楼上的,你的函数sqlldr能认识吗? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 "问题是如果过滤的值列表来自一张表"==================================既然这样,为什么不用如下的方法?insert into table_1 ...select xxx from table_2 sqlldr的直接路径加载就不用说了,效率虽高但功能上就作了太多的限制,就sqlldr的一般数据加载来说,我们知道它实际上就是读取文本中的数据,然后构造一条一条的sql,做的是insert操作,而对整条记录的过滤,sqlldr只提供了skip和when,很明显这两种方法都是无法满足你的这种需求的when操作实际上就是在读取文本数据中所进行字符之间的比较,与数据库中的数据是没有什么联系的,所以会有后面只能接字符串和16位字符的限制,所以上面的写法会有问题如果要实现你的这种目的,光靠sqlloader估计是没什么希望了,如果要实现类似的功能,我想我们可以在导出的文本数据上或者在将文本导入后再进行二次处理都应该是可以接受的。说的不对的地方,大家多指正。 感谢各位指点,我很同意zmgowin(隐者(龙祖宗)) 的说法,但心理上却不太愿意接受,因为我需要导入的仅仅是文本数据量的1%,而数据量又比较大,两个数量级的存储以及速率差异诱惑实在太大了。对于数据文件的生成,我们原打算在源数据系统(异构系统,而且网络隔离)过滤,但正因为过滤条件来自我系统的一张表,才不得不放弃了这个设想。二次处理倒是除了动态控制文件的另一思路,不过当前这个系统中批量处理采用的是模块式结构,与主控模块间的接口只能是CTL文件,所以得去在主控模块处进行特殊处理。真是难为大家了。感谢抬贴,会赠分相谢 不明白楼主得意思,如果你数据来自一张表为啥不用insert into tableselect from table的形式?如果你要做成你想要的格式,而sql语句和sqlldr都无法实现那你可以写程序实现啊 个人感觉没什么好的办法。如果有1:99那样的数据比例,也不推荐导入后再过滤的方法。多组织些人,在EXCEL里过滤好了再导入吧。(EXCEL的有些功能还挺好用的) oracle 层次查询 求助:ORACLE导入XML大文件 pro*c 里游标能嵌套吗? 我刚建立的oracle服务端,建立了2个用户,为什么1个用户建的表另1个用户看不到呀? 查出单个用户只显示一条的messageid, 按createdate倒排序 一个动态创建表的问题~ like 如何匹配 ? 呢 oracle 下載 高分求一SQL语句 今天是周末啊,这么小的问题,不要在折磨我了啊,HELP!!!在线等!!! 问个简单问题:如何查看一条语句的执行计划? imp80导入数据库备份的问题.
==================================既然这样,为什么不用如下的方法?
insert into table_1 ...
select xxx from table_2
而对整条记录的过滤,sqlldr只提供了skip和when,很明显这两种方法都是无法满足你的这种需求的
when操作实际上就是在读取文本数据中所进行字符之间的比较,与数据库中的数据是没有什么联系的,所以会有后面只能接字符串和16位字符的限制,所以上面的写法会有问题
如果要实现你的这种目的,光靠sqlloader估计是没什么希望了,如果要实现类似的功能,我想我们可以在导出的文本数据上或者在将文本导入后再进行二次处理都应该是可以接受的。说的不对的地方,大家多指正。
对于数据文件的生成,我们原打算在源数据系统(异构系统,而且网络隔离)过滤,但正因为过滤条件来自我系统的一张表,才不得不放弃了这个设想。
二次处理倒是除了动态控制文件的另一思路,不过当前这个系统中批量处理采用的是模块式结构,与主控模块间的接口只能是CTL文件,所以得去在主控模块处进行特殊处理。
真是难为大家了。
感谢抬贴,会赠分相谢
为啥不用
insert into table
select from table
的形式?如果你要做成你想要的格式,而sql语句和sqlldr都无法实现
那你可以写程序实现啊
多组织些人,在EXCEL里过滤好了再导入吧。(EXCEL的有些功能还挺好用的)