我要对表t_user作备份,每次开机的时候自动执行:------------------------------------------------------------------------------------
variable job1 number;
begin
sys.dbms_job.submit(:job1,'scott.Pro_move_t_user;',sysdate,'sysdate+1/1440');
dbms_job.run(:job1);
commit;
end;------------------------------------------------------------------------
那位高手可以告诉我,每次开机如何才能让oracle自动执行上边的sql语句????
在线等待中!!!!

解决方案 »

  1.   

    编辑sh文件放到指定的目录下,之后制定oracle定时调用(可在社区找到定时调用的设置)执行该文件,如:
    1、/home/ja/jass01/bin/M_DEL.sh
    2、sh文件类似如下:
    M_DEL.sh----********---->#!/bin/csh
    #------------------------------------------------------------------------------
    # WEB壔僨乕僞嶍彍

    # 1.扨昜僨乕僞   HAN_JUGY2  DB丂丂
    #------------------------------------------------------------------------------#-------------------------------------------------
    #  Environment
    #-------------------------------------------------source $HOME/bin/ENV.sh# MYNAME 庢摼
    setenv MYNAME `echo "$0"|awk 'BEGIN{FS="."}{print $1}'|awk 'BEGIN{FS="/"}{print $NF}'`msglog -i100 -kI -n$MYNAME.sh -f婲摦偟傑偟偨#------------------------------------------------------------------------------
    # 幚峴張棟俶俷乮僼僅儘乕帪偼僄儔乕儊僢僙乕僕偺張棟斣崋傪偙偙偵僙僢僩乯
    #------------------------------------------------------------------------------
    if( $#argv != 1 ) then
      set SHORINO = 0
    else
      set SHORINO = $1
    endif
    # SHORINO 偺 抣
    #   0     : 嵟弶偐傜
    #   1     : 扨昜僨乕僞DB嶍彍偐傜#------------------------------------------------------------------------------
    # 扨昜僨乕僞 偺  係擭慜偺擭寧傪庢摼丂丂
    #------------------------------------------------------------------------------
    set TODAY       = `date +%Y%m%d`
    set YYYY        = `date +%Y`
    set MM          = `date +%m`
    set DD          = `date +%d`
    set MMAGO_USR   = 0
    set MMAGO_SS    = 0
    set MMAGO       = 0
    set MMAGO_POS   = 0
    set YYYYAGO_USR = $YYYY
    set YYYYAGO_SS  = $YYYY
    set YYYYAGO     = $YYYY
    set YYYYAGO_POS = $YYYYset YYYYAGO_HAN = $YYYY
    @ YYYYAGO_HAN  = $YYYYAGO_HAN  -  4
    @ MMAGO_USR     = $MM - 1
    @ MMAGO_SS      = $MM - 18
    @ MMAGO         = $MM - 2
    @ MMAGO_POS     = $MM - 3
    set YYYYMMAGO_HAN = ${YYYYAGO_HAN}12setenv LOGFIL    $LOGDIR/$MYNAME"_LOG".{$TODAY}
    setenv TMPSQL    $LOGDIR/delete.sql.$$
    setenv TMPSQLLOG $LOGDIR/delete.log.$$#------------------------------------------------------------------------------
    # 扨昜僨乕僞乮HAN_JUGY2乯DB偺嶍彍丂丂
    #------------------------------------------------------------------------------set SHORICHK = 6
    if( $SHORINO <= 6 )then
        set SHORINO = 6
    endifif ( $SHORICHK >= $SHORINO  &&  $MM == 01 ) then
      echo `date +%T`"oooooooooo 扨昜僨乕僞乮HAN_JUGY2乯DB嶍彍 oooooooooo"        >>& $LOGFIL  echo                                                               >   $TMPSQL
      echo "set head off"                                                >>  $TMPSQL
      echo "spool "$TMPSQLLOG                                            >>  $TMPSQL
      echo "delete from han_jugy2 where ym <= to_number($YYYYMMAGO_HAN) ;" >>  $TMPSQL
      echo "show sqlcode"                                                >>  $TMPSQL
      echo "exit "                                                       >>  $TMPSQL  $ORACLE_HOME/bin/sqlplus $ORA_USR/$ORA_PWD @$TMPSQL          >>& $LOGFIL  if ( $status != 0 ) then
          goto job_abend
      endif  set st = `grep 'sqlcode [0-9]' $TMPSQLLOG | grep -v 'sqlcode 0' | wc -l`
      if ( $st != 0 ) then
        goto job_abend
      endif  echo `date +%T`"oooooooo 扨昜僨乕僞乮HAN_JUGY2乯DB嶍彍廔椆 oooooooo"        >>& $LOGFIL
      echo " "                                                           >>& $LOGFIL
    endif
    #------------------------------------------------------------------------------
    # 廔椆
    #------------------------------------------------------------------------------
    job_end:
    echo `date +%T`"oooooooooo DB嶍彍惓忢廔椆 oooooooooo"    >>& $LOGFIL
    msglog -i102 -kI -n$MYNAME.sh -f惓忢廔椆
    /usr/bin/rm $TMPSQL $TMPSQLLOG >& /dev/null
    exit(0)job_abend:
    echo `date +%T`"xxxxxxxxxx DB嶍彍堎忢廔椆 xxxxxxxxxx"    >>& $LOGFIL
    msglog -i103 -kE -n$MYNAME.sh -f堎忢廔椆乛張棟斣崋$SHORINO
    exit(1)
    <----********----M_DEL.sh
      

  2.   

    try:创建数据库触发器。
    调用动态sql语句