创建存储过程 CREATE OR REPLACE PROCEDURE 存储过程名字 (参数1(入参) IN NUMBER, 参数2(出参) OUT DATE, 参数3(入参,出参) IN OUT NUMBER) AS 变量1 VARCHAR2 (100); 变量2 NUMBER; 变量3 DATE; BEGIN 变量1 := TO_CHAR (sysdate - 1, 'yyyymmdd'); 变量2 := 变量3 := select first_name,phone_number into 参数2,参数3 from employees where employee_id=参数1; update employees set salary=salary+参数3 where first_name=参数1; commit; dbms_output.put_line(参数1||'的工资已经增加了'||参数2||'!'); insert into MFUND.T_TRADEACCO_FEE_DETAIL (manager_code,tacode) SELECT D.manager_code,D.tacode FROM xnsale.T_FAFS_TRADEACCO_FEE_DETAIL@xnsale D WHERE D.SHARE_DATE = '变量1'; commit; END 存储过程名字; =========================================================================== 执行存储过程 declare 参数1 number; 参数2 employees.first_name%type; 参数3 employees.phone_number%type; begin 参数1:=102; 存储过程名字(参数1,参数2,参数3); dbms_output.put_line('员工号为'||参数1||'的员工姓名是;'||参数2||',联系电话是:'||参数3); end; TO_CHAR (sysdate, 'yyyy-mm-dd') TO_CHAR(sysdate,'yyyy-mm-dd hh24:mi:ss')
=========================================================================== 创建计划任务 create or replace PROCEDURE SP_CREATE_JOBS IS myjob number :=0; job_record user_jobs%ROWTYPE; BEGIN /* 2020/06/29 jhr 添加 MFUND.T_TRADEACCO 每日insert数据存储过程 2020/06/29 jhr 添加 MFUND.T_TRADECONFIRM 每日insert数据存储过程 */ FOR job_record IN (SELECT job FROM USER_JOBS WHERE what in ('SP_INSERT_T_TRADEACCO;', 'SP_INSERT_T_TRADECONFIRM;') ) LOOP sys.dbms_job.remove(job_record.job); END LOOP; myjob := 0; sys.dbms_job.submit(myjob,'SP_INSERT_T_TRADEACCO;',TRUNC(SYSDATE) + 15/24,'TRUNC(SYSDATE + 1) + 3/24'); sys.dbms_job.submit(myjob,'SP_INSERT_T_TRADECONFIRM;',TRUNC(SYSDATE) + 15/24,'TRUNC(SYSDATE + 1) + 3/24'); commit; END; 注释:
sys.dbms_job.submit(myjob,'SP_INSERT_T_TRADECONFIRM;',TRUNC(SYSDATE) + 15/24,'TRUNC(SYSDATE + 1) + 3/24');
sys.dbms_job.submit(myjob,'存储过程名;',首次执行时间,'执行间隔时间'); 首次执行时间和执行时间间隔参考如下: TRUNC(SYSDATE + 1) --明天0点 TRUNC(SYSDATE + 1) + (3*60+30)/(24*60) --明天早上三点半 TRUNC(SYSDATE)+ 15/24 --今天下午三点 'SYSDATE + 30/(60*24*60)' --每30秒运行一次 'SYSDATE + 1' --每天运行一次 'NEXT_DAY(TRUNC(SYSDATE ), ''TUESDAY'' ) + 12/24' --每星期二中午12点 'TRUNC(LAST_DAY(SYSDATE ) + 1)' --每个月第一天的午夜12点 V1.0_20200706版本 V2.0_20200803版本
