如果要将Oracle数据库中的一张表定时地导出至文本 
应该怎么实现? 
例如今天是2008.08.29 
就导出至20080829.txt... 
只要导出规定的一张表就可以了 
各位大大可以教下小弟吗? 
感激不尽!! 

解决方案 »

  1.   

    使用DBMS_JOB进行作业管理即可。
    利用DBMS_JOB.SUBMIT函数,将你要执行的处理(存储过程)将作业提交到作业队列。
      

  2.   

    如果要求不高,可以采用windows bat文件方式;1:先创建SQL 文件spool.sql
    内容:
    set head off     
    spool c:\select.txt   
    select * from tbl;   
    spool  off 
    2:然后创建一test.bat文件
    文件内容:cd c:\
    sqlplus "test/test" @c:\spool.sql
    这时候直接运行test.bat会再c:\盘下生成select.txt文件,3:在windowsstart->programs->Accessories->System Tools->Scheduled Tasks里面定义每天运行一次
    在linux下用crontab
      

  3.   

    没试过,随便写的建个存储过程里面这样
    execute immediate 'Spool c:\temp\'||to_char(sysdate,'yyyymmdd')||'.txt';select * from test;execute immediate 'spool off';
    然后用JOB定时执行这个存储过程
      

  4.   

    操作系统做个定时任务,任务的内容是执行一个 exp.bat
    exp.bat的内容是:sqlplus user/pw@yourSid @d:\exp.sql
    再在d盘根目录下建个文件exp.sql,内容如下:column abc NEW_VALUE abc;
    select to_char(sysdate,'yyyy-mm-dd_hh24miss')||'.txt' abc from dual;
    spool &abc
    select * from emp;
    exit;以上 就可以定时生成日期命名的文本文件了。
      

  5.   


    操作系统做个定时任务,任务的内容是执行一个 exp.bat 
    exp.bat的内容是: sqlplus user/pw@yourSid @d:\exp.sql 
    再在d盘根目录下建个文件exp.sql,内容如下: column abc NEW_VALUE abc; 
    select to_char(sysdate,'yyyy-mm-dd_hh24miss')||'.txt' abc from dual; 
    spool &abc 
    select * from emp; 
    exit; 
    以上 就可以定时生成日期命名的文本文件了。 
      

  6.   

    问题已解决.
    参照hyrongg的方法.
    在Sql文件中写入
    set head off    
    spool &1  
    select * from tablename;
    spool  off 再写个bat文件
    sqlplus user/psw @sql.sql %date:~0,4%%date:~5,2%.txt <nul
    exit最后把bat文件放进计划任务...谢谢各位大大~!
    听了各位大大的意见,小弟受益匪浅哈!