sql*loader 导入选定的记录

wang_clank 2007-04-10 02:34:56
控制文件:
LOAD DATA
APPEND
INTO TABLE TABLENAME
WHEN SUM != '0.00' AND BALAN!='0.00'
FIELDS TERMINATED BY "|"
(
SUM "to_number(:SUM)",
BALAN "to_number(:BALAN)",
)
要求SUM 和BALAN字段同时都不为'0.00'导入,否则不导;现在问题是sum或balan字段中只要有一个字段等于'0.00'就不导入此条记录;请问各位高手我该如何解决啊?
...全文
363 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
wang_clank 2007-04-27
  • 打赏
  • 举报
回复
LOAD DATA
APPEND
INTO TABLE TABLENAME
WHEN SUM <> '0.00'
FIELDS TERMINATED BY "|"
(
SUM "to_number(:SUM)",
BALAN "to_number(:BALAN)",
)
INTO TABLE TABLENAME
WHEN SUM = '0.00' and BALAN <> '0.00'
FIELDS TERMINATED BY "|"
(
SUM "to_number(:SUM)",
BALAN "to_number(:BALAN)",
)这样可以解决,但是要导2次!
帖子自己结了~~~~
wangzk0206 2007-04-11
  • 打赏
  • 举报
回复
WHEN SUM != '0.00' AND BALAN!='0.00'??

根据你的需求你应该是两者之间OR 而不是AND 但是SQL*LOADER没有OR

所以你可以分开导入
wang_clank 2007-04-10
  • 打赏
  • 举报
回复
SQL*Loader-350: 语法错误位于第4行。
预期值是")",而实际值是关键字 and。
WHEN (LIST_SUM!='0.00' AND LIST_BALAN!='0.00')
tgm78 2007-04-10
  • 打赏
  • 举报
回复
SUM != '0.00' AND BALAN!='0.00'

改成

(SUM != '0.00' AND BALAN!='0.00')

试试
wang_clank 2007-04-10
  • 打赏
  • 举报
回复
100.0|0.00|
0.00|13.5|
0.00|0.00|
例如源文件如上,我执行sqlldr后以上3条记录都未导入表,可我只希望第3条记录(0.00|0.00)不导入表;

3,497

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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