plsql块:
declare 
 kkk date
begin 
  execute('exp test/test@test d:\aaa_'||to_char(sysdate,'yyyymmdd')||'.dmp')
end;

解决方案 »

  1.   

    建立存储过程为:
    create or replace procedure pro_bakdatabase is
    begin
      execute('exp test/test@test d:\aaa_'||to_char(sysdate,'yyyymmdd')||'.dmp');
    end pro_bakdatabase ;
    然后再调用这个存储过程pro_bakdatabase
      

  2.   

    如果solidpanther的这个存储过程能成功,恐怕oracle要面临起诉:任何一个能登陆数据库的用户(不管是否dba),都能用下面的pl/sql把硬盘格式化了:(windows下)
    begin
     execute('format c:');
    end ;
      

  3.   

    这个问题不需要在oracle里解决,只要能生成文件名就可以了。
    建立一个.vbs文件:
    DIM objShell
    Set objFileSystem = Wscript.CreateObject("Scripting.FileSystemObject")
    Set objFolder = objFileSystem.GetFolder("d:\zzz")
    Set colFiles = objFolder.FilesFor Each FileObj in colFiles
    fsDate = FileObj.DateCreated  
    if (DateDiff("d",Now,fsDate)<-3) then
    FileObj.Delete
    end if 
    Nextset objShell = wscript.createObject("wscript.shell")
    iReturn = objShell.Run("exp system/manager owner=ttt file=d:\zzz\bak" & Date(), 1, TRUE)然后在windows计划任务里执行这个脚本就可以了。
      

  4.   

    http://community.csdn.net/Expert/topic/2847/2847335.xml?temp=.4883234
      

  5.   

    @ECHO 功能:获取系统日期时间,导出数据库
    @ECHO 说明:随便使用和更改
    @ECHO 作者:守护者
    @ECHO 时间:2004-09-02
    ECHO OFF
    REM 输出日期时间到TEMP
    set mydate=%temp%\mydate.tmp
    set mytime=%temp%\mytime.tmp
    date /T > %mydate%
    time /T > %mytime%
    REM 忽略;开头的行,用-分隔,取1,2,3个符号
    set parsearg="eol=; tokens=1,2,3* delims=-, "
    for /F %parsearg% %%i in (%mydate%) do set yyyymmdd=%%i%%j%%k
    set parsearg="eol=; tokens=1,2,3* delims=:, "
    for /F %parsearg% %%p in (%mytime%) do set ppqq=%%p%%q
    REM set exp_file=%TEMP%\HNDL_%yyyymmdd%_%ppqq%.dmp
    set exp_file=C:\HNDL_%yyyymmdd%_%ppqq%.dmpREM 如果文件存在,那么退出
    REM IF EXISTS %exp_file% GOTO END1
    set store_path=D:\营销开发日常备份\数据库备份\HNDL_%yyyymmdd%_%ppqq%.dmpREM 到出文件
    ECHO ON
    exp HNDL/HNDL@HNDL FULL=N GRANTS=Y ROWS=Y file=%exp_file% OWNER=HNDL
    ECHO OFF
    REM 拷贝到默认路径
    ECHO ON
    COPY %exp_file% %store_path%/Y
    DEL %exp_file% /FREM 导出数据库到默认路径,数据库导出文件为当日日期
    REM exp HNDL/HNDL@HNDL FULL=N GRANTS=Y ROWS=Y file=D:\营销开发日常备份\数据库备份\%date:~4,10%.dmp OWNER=HNDL
    REM 导出数据库到默认路径,数据库导出文件为当日日期的星期几,每个星期只保留一份备份,重复文件将自动覆盖
    REM exp HNDL/HNDL@HNDL FULL=N GRANTS=Y ROWS=Y file=D:\营销开发日常备份\数据库备份\%date%.dmp OWNER=HNDL
    REM 导出完成
    REM
    REM GOTO END2
    REM
    REM :END1
    REM REM 退出
    REM ECHO 存在文件%exp_file% 请确认后退出
    REM GOTO END3
    REM :END2
    REM ECHO 导出完成,请确认退出
    REM GOTO END3
    REM :END3
    REM Pause
    REM ECHO 完成退出
      

  6.   

    生成一个BAT,将上面代码拷贝导里面,使用AT命令定义一个启动时间
    at 23:59 /every D:\auto_exp.bat
    刚刚完成,呵呵,一起使用一下
      

  7.   

    在命令行中执行exp命令,照提示一步步作就可以啦