存储过程
概念:
完成特定功能的SQL语句集合,经过编译存储在数据库中
编译后sql语句,可以通过调用过程来实现功能,不需要重新写sql语句
优点:
模块化程序编程
减少网络流通量
提高安全性
执行速度快
过程procedure
创建过程
create [ or replace ] procedure 过程名称 [ ( 参数列表) ] { is | as }
----声明变量
begin
----执行代码
end [过程名称];
例如:
create or replace procedure myproc
as
m number;
begin
m:=100;
dbms_output.put_line(m);
end;
调用存储过程:
exec 存储过程名称 [ (参数) ]
execute 存储过程名称 [ (参数) ]
begin
----存储过程名称 [ (参数) ]
end
例如:
declare
begin
myproc;
end;
删除过程
drop procedure 过程名称
获取过程返回值
问题:给一个用户,判断用户是否存在
--声明一个参数ret,是输出参数out,是number类型
create or replace procedure myproc2(pid in emp.eid%type,ret out number)
as
flag number;
begin
select count(1) into flag from emp where eid=pid;
if flag=1 then
dbms_output.put_line(pid||'用户存在');
ret:=1; -- 如果用户存在就把ret设为1
else
dbms_output.put_line(pid||'用户不存在');
ret:=0; -- 如果用户不存在就把ret设为0
end if;
end;
–