oracle 控制文件策略

0
数据仓库中数据文件加载至ODS贴源层是通过SQLLDR方式加载的,加载策略是通过CTL控制文件来实现的,CTL控制文件内容举例如下:
load data
characterset ZHS16GBK
into table O_CZZZ_GLS_GL_SUB_DAY
append
fields terminated by ','
optionally enclosed by '"'
trailing nullcols
(
  BR_NO "trim(:BR_NO)", 
  ACC_CODE "trim(:ACC_CODE)", 
  CUR_NO "trim(:CUR_NO)", 
  ACC_HRT "trim(substr(:ACC_HRT,1,5))", 
  TX_DATE "trim(:TX_DATE)", 
  DC_IND "trim(:DC_IND)", 
  UP_ACC_HRT "trim(substr(:UP_ACC_HRT,1,5))", 
  DR_BAL "trim(:DR_BAL)", 
  CR_BAL "trim(:CR_BAL)", 
  LDD_BAL "trim(:LDD_BAL)", 
  LCD_BAL "trim(:LCD_BAL)", 
  RDD_CNT "trim(:RDD_CNT)", 
  RCD_CNT "trim(:RCD_CNT)", 
  RDD_AMT "trim(:RDD_AMT)", 
  RCD_AMT "trim(:RCD_AMT)", 
  CDD_CNT "trim(:CDD_CNT)", 
  CCD_CNT "trim(:CCD_CNT)", 
  CDD_AMT "trim(:CDD_AMT)", 
  CCD_AMT "trim(:CCD_AMT)", 
  CYC_TYPE "trim(:CYC_TYPE)", 
  CHG_DATE "trim(:CHG_DATE)", 
  CYC_NO "trim(:CYC_NO)"
)
这个CTL文件只是append,那么如果这个脚本运行两次就会出现数据翻倍情况,所以应该在append之前先delete当日数据,虽然我知道delete当日数据可以在sh中用一句话来搞定,但是毕竟脚本太多,sh中更多的用变量完成这些事情。所以问题来了,如何在ctl文件中删除当日数据呢?
请各位不吝赐教,万分感谢!
已邀请:
0

梦小浅 2016-12-12 回答

谢谢分享!
0

dota_2261 - 生命不息,探索不止 2016-12-12 回答

并没有分享啥,只是抛出了问题,呵呵哒~
0

li052468 2016-12-12 回答

ctl文件里貌似不能按条件删除吧
0

夏尔康 - 通晓各种统计学习方法,熟练使用R语言建模,结合帅气与才智的不明吃瓜群众 2016-12-12 回答

CTL文件无法运用条件删除,因为只是个入库控制文件,个人理解
0

老头子 - 专注是唯一的捷径 2016-12-12 回答

你要全清空表数据么,还是说只有重复的才删除

要回复问题请先登录注册