1.用Java读取并解析文件,导入到数据库临时表;
2.用PLSQL对临时表数据进行处理;
3.捕捉IO及SQL异常。

解决方案 »

  1.   

    请问我用oracle的dbms_lob和utl_file包结合可以实现对文本文件的操作吗?
    如:
    dbms_lob.fileexists(...)来判断标示文件存在与否
    utl_file读文本文件,并进行处理。
      

  2.   

    打算全用PLSQL进行处理?
    这两个包没用过,帮你顶一下。
      

  3.   

    楼上的楼上的再加个job定时作业
      

  4.   

    我想尝试用
    dbms_job.dbms_lob.utl_file和存储过程来实现我描述的功能,但不知道运行结果会怎样,因为数据量比较大(几百万),也不知道异常处理控制的怎么样,请搞手指点?
      

  5.   

    我觉得用pl sql就可以实现上述功能,只是不知道性能和安全性如何?!
      

  6.   

    用plsql的存储过程和java都可以。但我更愿意选择songlean的意见。
    1 用java读文件,写入临时表。
      这部分工作用java来写很简单,不用在去查看oracle的文档了;而且oracle数据库支持java类。
    2 整合表使用plsql存储过程
      大数据量的处理当然用存储过程,时间宝贵啊
    3 使用java的异常处理机制
      读文件是捕获IO异常,保证数据来源没有问题
      写临时表捕获sql异常,并判断返回值是否正确(insert语句返回实际插入的数据条目数)
      
    2中的存储过程如果出错就比较麻烦,考虑这样解决:
      存储过程的算法一般都会使用缓存,如每次处理1000条数据,清空缓存,下一个1000条。  存储过程要判断每次循环是否出错,如果出错的话,做个标志,抛出异常。
      肯定是在java中调用这个过程,好了,捕获它抛出的那个异常,解决问题后再次调用存储过程,直到处理完成。  抛砖了,呵呵