定义:存储过程是命名的pl/sql程序块,封装数据业务操作,具有模块化、可重用、可维护、更安全特点;并且可以被程序调用。一般有4种类型的存储过程,分别为不带参数、带入参数、带输出参数、带输入输出参数。
语法:CREATE [OR REPLACE] PROCEDURE <过程名>[参数列表] IS|AS
[局部变量声明]
BEGIN
可执行语句
[EXCEPTION
异常处理语句]
END[<过程名>];
OR REPLACE:如果系统已存在该存储过程,将被替换
参数列表:参数不需要声明长度,可选
参数变量的类型:in 为默认类型,表示输入;out 表示只输出;in out 表示即输出输入;
调用方式:1:在pl/sql块中直接使用过程名;
2:在pl/sql程序外使用 exec[ute] <过程名>[参数列表];
无参存储过程:
授予czw创建存储过程权限
grant create procedure to czw;
使用无参存储过程,注意无参存储过程创建时不能使用()
create or replace procedure pro_helloWorld
as
begin
dbms_output.put_line('hello world');
end;
方式一:调用存储过程,可加可不加()
begin
pro_helloWorld;
end;
方式二:调用存储过程,可加可不加()
exec pro_helloWorld;
有输入参数存储过程:
create or replace procedure pro_add_emp(
p_empno in emp.empno%type,
p_ename in varchar2,
p_sal number
)
as
begin
insert into emp(empno,ename,sal) values(p_empno,p_ename,p_sal);
end;
调用存储过程,想emp表插入新数据
begin
pro_add_emp(2001,'czw2001',3000);
pro_add_emp(2002,'czw2002',2000);
pro_add_emp(2003,'czw2003',4000);
end;