【DB】oracle存储过程小记

334 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第22天,点击查看活动详情

在oracle中,存储过程是为了完成特定功能的SQL语句集,编译后存储在数据库中,用户通过指定存储过程名字并给出参数来执行它。

我们在使用mysql或者oracle处理一些特殊场景的数据时需要用一组固定的SQL语句集来处理,当我们的存储过程编写完之后就可以下次在用它处理数据的时候来直接调用。oracle作为老牌数据库对于处理和存储大量数据相比mysql更具有优势,所以今天来简单介绍一下oracle的存储过程。

一、创建存储过程

固定语法

create or replace procedure 存储过程名称( V_RETCODE OUT VARCHAR2, //固定参数
V_RETINFO OUT VARCHAR2)
beginend

二、调用存储过程

call 存储过程名称()

三、删除存储过程

drop procedure 存储过程名称()

注意:不能在一个存储过程中删除另一个存储过程,只能调用另一个存储过程

四.执行存储过程

存储过程的调用:

DECLARE
v_code varchar2(20);
v_info varchar2(20);
BEGIN
存储过程名称(201803,v_code,v_info);
DBMS_OUTPUT.PUT_LINE(v_code);
END;

五.其他常用命令与函数

1.show procedure status

显示数据库中所有存储的存储过程基本信息,包括所属数据库,存储过程名称,创建时间等

2.show create procedure sp_name

显示某一个mysql存储过程的详细信息

IN 表示输入参数,按值传递方式。

OUT 表示输出参数,可以理解为按引用传递方式。可以作为存储过程的输出结果,供外部调用者使用。

IN OUT 即可作输入参数,也可作输出参数。

:= 是赋值符号,例如: a := 2, 那么变量a的值,就是2了

= 是比较符号, 例如: … WHERE 字段名 = 2,和 > < 是一样的性质

to_char() 转换为字符串

to_date() 转换为日期格式

to_char(add_months(to_date(into_date,’yyyyMM’),-1),’yyyyMM’);