初学者,读不懂存储过程,往各位大侠制定,最好能详细点,非常感谢!!!CREATE OR REPLACE PROCEDURE P_XYZ
-- ======================================================================================================
--  实现存储过程的异步调用
-- ======================================================================================================(
  --作业ID
  v_JobID IN NUMBER DEFAULT NULL 问题:这段是什么意思
)
AS   问题:下面这些是什么,是变量定义么?
   v_CID NUMBER(10,0);
   v_CS NVARCHAR2(100);
   v_jobName NVARCHAR2(100);
   oracle_jobno number; .....  IF v_CID IS not NULL THEN
     DBMS_JOB.SUBMIT(oracle_jobno, v_cmdScript || '(' || v_JobID  || ');',SYSDATE);     问题:DBMS_JOB.SUBMIT 是干什么的,说是个package,pakegae是做什么用的?
     commit;
   END IF;.....

解决方案 »

  1.   

    v_JobID IN NUMBER DEFAULT NULL 问题:这段是什么意思
    ---存储过程输入参数问题:下面这些是什么,是变量定义么?
    ---是的问题:DBMS_JOB.SUBMIT 是干什么的,说是个package,pakegae是做什么用的?
    ---提交定时任务用的存储过程,存在在系统包(package)里面
    -----package可以把 有特定功能的存储过程 函数 变量定义 打包封装在一起。
      

  2.   

    是变量定义;JOB是个数据库定时执行的任务,用submit把JOB加入到数据库的任务队列中,submit具体用法如下:
    SQL> variable n number; 
       SQL> begin 
          2   dbms_job.submit(n, 'my_job', sysdate, 'sysdate + 1/360'); 
          3   commit; 
          4 end 
          5 / 
       SQL> print :n; 
    --其中,这里的my_job,可以是一个存储过程,也可以是个命令,就是你想在JOB中实现的功能。类似于你代码中的:
    v_cmdScript || '(' || v_JobID || ');
      

  3.   

    问题一:存储过程参数
    问题二:是变量定义
    问题三:系统包的名字,包就是一系列类型、存储过程和存储方法可以定义在一个包中。类似于Java语言中
            package的概念。