现需要使用job来定时执行一段sql,因为sql里有alter语句,所以无法写成存储过程来调。  windows平台我是通过windows任务计划里添加一个任务,通过 .bat执行调用sql文件达到的效果。  现在主要是要能在linux平台上达到此效果。  望高手指点迷津。
  

解决方案 »

  1.   

    在linux下写一个shell, 相当于windows下的bat 
    用crontab做调度
      

  2.   

    alter等ddl语句在procedure,是需要采用execute immediate 'alter ....';执行的.
      

  3.   

    在存储过程中,你可以用 execute immediate 'SQL' 来执行你的语句.
    当然LS的方法也可以.
      

  4.   

    shell里面的写法和bat差不多
    set logfile="/logs/oracleLog.log"
    set User="SCOTT"
    set ....sqlplus $User/$Password@$SRVR @update_people.sql >> $logfile$User是定义的用户名变量
    $logfile是定义的执行结果变量
      

  5.   

    动态语句加job
    或者sql+contab