社区
基础和管理
帖子详情
高手请进,高分求教SQLLDR的数据过滤问题,要求按某张表中的数据过滤,解决问题的人才给分
chooser
2004-10-23 04:00:25
SQLLDR的控制文件中可以用
when (14-20) = '102000'进行常量型过滤,问题是如果过滤的值列表来自一张表,怎么完成。
when (14-20) in (select code from codelist)
这种写法是不通过的。
这里不考虑控制文件动态生成的做法。
...全文
572
14
打赏
收藏
高手请进,高分求教SQLLDR的数据过滤问题,要求按某张表中的数据过滤,解决问题的人才给分
SQLLDR的控制文件中可以用 when (14-20) = '102000'进行常量型过滤,问题是如果过滤的值列表来自一张表,怎么完成。 when (14-20) in (select code from codelist) 这种写法是不通过的。 这里不考虑控制文件动态生成的做法。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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
打赏
举报
回复
写个函数来控制吧!
利用
sql
ldr
大量
数据
导入
利用
sql
ldr
大量
数据
导入,方便,快速
windowns下利用bat命令+oracle的
sql
ldr
功能导入
数据
windowns下利用bat命令+oracle的
sql
ldr
功能导入
数据
,导入速度很快
sql
ldr
导入
数据
使用
sql
ldr
批量导入
数据
:http://blog.csdn.net/gengwx_2008/article/details/43792301
My
SQL
导出
数据
并通过
sql
ldr
导入oracle
My
SQL
数据
导入到Oracle的中间件,其工作原理是将My
SQL
数据
的导出命令写入到d:/my
sql
tooracle/exportcmd.txt,打开该文件即可获取需要手动执行的导出My
SQL
数据
的
sql
脚本,执行后会在 “/var/my
sql
tooracle”(针对Linux系统,代码中能修改)生成
数据
文件;同时代码还会生成
sql
ldr
命令需要用到的control文件和bat文件,以及连接Oracle的配置文件,只要将My
SQL
导出的
数据
文件合到一起,执行bat文件,即可完成
数据
导入到Oracle的任务。所有文件都是以导入导出的那张表的表名命名的。
C# 通过oracle
sql
ldr
将TXT批量导入oracle
C# 通过oracle
sql
ldr
将TXT批量导入oracle 一个文件夹里有大量的TXT文件,以"~"区
分
各字段. 这个程序能批量将此文件夹里的所有的文件导入oralce 并按日期把已导入的TXT文件复制另一个文件夹
基础和管理
17,377
社区成员
95,128
社区内容
发帖
与我相关
我的任务
基础和管理
Oracle 基础和管理
复制链接
扫一扫
分享
社区描述
Oracle 基础和管理
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章