如何设定晚上23点定时读取本地d:\download\dingdan\dingdan_2009-07-09.txt
的数据,并导入到ORACLE指定的表中?1、ORACLE10g,表空间为BKML,用户密码为bkml/bkml,表名为ORDER2、表ORDER的结构为
   bkdh               price         leixing          beizhu  varchar(20)    number(10,2)    varchar(300)    varchar(4000)3、dingdan_2009-07-09.txt的数据结构及数据样本   daihao             danjia         zhonglei        demo  211-903,320.2,月刊,不破订只能全年订购
  211-903,320.2,年刊,不破订只能全年订购
  211-903,320.2,季刊,不破订只能全年订购
4、说明:路径固定,但dingdan_2009-07-09.txt 文件名dingdan_后面的是以日期取名,每天变化;5、导入前,必须将ORDER表的数据清空,然后将TXT里头的数据全部插入,若有错误,生成日志;以上是在Windows的机器如何解决?若在Linux上又如何解决?跪求解决方案。

解决方案 »

  1.   

    windows上写一个bat文件,使用任务计划设定23点启动,bat文件内使用sqlloader导入数据,使用replace模式,这样原表数据将被清空。
    linux下原理差不多,但是没有实践过,留给楼下吧
      

  2.   

    windows上写一个bat文件,使用任务计划设定23点启动,bat文件内使用sqlloader导入数据,使用replace模式,这样原表数据将被清空。 
    linux下原理差不多,但是没有实践过,留给楼下吧
    具体如何写?
      

  3.   

    1.
    load     data   
       infile   'dingdan_2009-07-09.txt' 
       into  table ORDER
       badfile 'bad.txt'
       TRUNCATE
       FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY ' ' 
      (bkdh        char,
       price       interger external,
       leixing     char,   
       beizhu      char
      ) 
    保存为insert.ctl文件,放在d:\download\dingdan下。2.记事本新建一个bat文件,内容:
    sqlldr userid=bkml/bkml   control=insert.ctl   log=sysout.out
    保存为insert.bat,放在d:\download\dingdan下。3.打开windows下“开始”→“附件”→“系统工具”→“任务计划”,添加任务计划,把这个bat文件添加进去,时间设置为当天23点。note:
    以上代码未经测试,可能有错误的地方,不要完全照搬。
      

  4.   

    关键是如何指定动态的文件名 TXT?
      

  5.   

    job+procedureprocedure 中引用utl_file 包
      

  6.   

    utl_file只能读写服务器端的文件对客户端的文件如何处理?