hi,大牛们!现在有一个需求,就是以表名作为参数,输入数据库中的表名,把表中的数据以某种格式写到OS文件中(例如CVS),我想了两种方法,就是用shell+sql,或者使用utl_file包,但是以表名作为参数实现功能都很难,请问你们有什么好方法呢?

解决方案 »

  1.   

    SPOOL+动态SQL 就好了,不难啊
      

  2.   

     要写通用的接口啊。。还有格式的要求,spool+动态考虑过了,比较难实现这个!
      

  3.   


    SPOOL 和 动态SQL实现很简单,但是格式可能不满足你要求,SPOOL出来的有点乱;
      

  4.   

    以表名作为参数,肯定要用动态sql
    这点反而不难。至于字段格式的转换,从数据字典里面查找字段类型,对应地进行字符的转换就ok了
    输出一定是文本文件,你能改变的只是后缀名
      

  5.   

    spool只能放在脚本里调用,utl_file可以放在存储过程里面
      

  6.   

    使用utl_file,建一个sql文件,放处理过程,通过sqlplus调用,将表名传进去。(SQL文件用到表名的地方用&1).调用格式:sqlplus usr/pass @xxx.sql Tab_Name