首页 > 数据库 > Oracle > oracle存储过程书写格式
创建存储过程
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版本
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69976145/viewspace-2702702/ ,如需转载,请注明出处,否则将追究法律责任。