参数如果是自定义的变量,应该实现不了。。
如果可以选择常量或者sysdate、sys_guid()类的系统函数,应该是可行的。。你可以试一下。。

解决方案 »

  1.   

    其实想根据条件的话,可以把传入的条件做成实体化表。。
    job里面调用得过程虽然不写传入参数,但可以在过程中先从表中取出参数,再进行各种操作。
      

  2.   

    job本身就是自动的执行计划,如果你想手动传参数的话就没必要用job了啊
      

  3.   

    设置JOB的代码如下:
    begin
      sys.dbms_scheduler.create_job(job_name            => 'SCHEMA.TEST_JOB',
                                    job_type            => 'STORED_PROCEDURE',
                                    job_action          => 'STORED_PROCEDURE_NAME',
                                    number_of_arguments => 1,
                                    start_date          => to_date('03-04-2014 00:00:00', 'dd-mm-yyyy hh24:mi:ss'),
                                    repeat_interval     => 'Freq=Daily;Interval=1',
                                    end_date            => to_date(null),
                                    job_class           => 'DEFAULT_JOB_CLASS',
                                    enabled             => TRUE,
                                    auto_drop           => false,
                                    comments            => '');
      sys.dbms_scheduler.set_job_argument_value(job_name          => 'SCHEMA.TEST_JOB',
                                                argument_position => 1,                                                                 --第几个参数
                                                argument_value    => '-1');                   --参数的值
      sys.dbms_scheduler.enable(name => 'SCHEMA.TEST_JOB');
    end;
    /
    这JOB个作用是用来每天定时导出数据的,存储过程里面的参数代表天数,代表向前推几天的数据,设置参数的目的就是如果自动作业失败了,可以灵活手动执行