这两天要用pl/sql开发,客户要求把一个表中符合条件的数据抽出倒成dump文件,查了一些资料,生成dump文件用命令exp就可以了。但是不能通过存储过程实现。客户要求用pl/sql开发,然后用oracle的执行计划去启动执行。哪位高手给个思路或者sample.

解决方案 »

  1.   

    http://database.e800.com.cn/articles/2008/511/1210450984020814115_1.html
      

  2.   

    你再查一下dbms包中有无执行外部命令的方法。
      

  3.   

    把exp的命令做成动态SQL即可.
    例如:'cd\ exp userid=username/password@oralink file=Dir\dumpname.dmp''cd\ exp userid=某用户/密码@主机字符串 file=c:\backup\文件名.dmp'
      

  4.   

    先把符合条件的数据生成一个新表,再用exp把它导出来
    create or replace procdure test
    as 
    begin
    create or replace table tabTemp
    as
    select * from tb where .....
    ....
    end test;创建JOB 
    SQL> variable job1 number; 
    SQL> 
    SQL> begin 
    2 dbms_job.submit(:job1,'test;',sysdate,'sysdate+1/1440'); 
    3 end; 
    4 /  定时运行存储
    SQL> begin 
    2 dbms_job.run(:job1); 
    3 end; 
    4 / EXP  SONIC/SONIC     BUFFER=64000  FILE=C:\SONIC.DMP  OWNER=SONIC TABLES=(tabTemp)
      

  5.   


    做成定时任务:'cd\ exp userid=username/password@oralink file=Dir\dumpname.dmp'
    'cd\ exp userid=system/system@skyman file=d:\backup\skyman_oracle.dmp'