Oracle-存储过程(procedure、function、package、tigger)

本文详细介绍了Oracle中的存储过程、函数、包和触发器。存储过程是预编译的SQL集合,提高了代码复用和安全性。函数必须有返回值,常用于SQL查询中。包用于组织相关过程和函数,而触发器则在特定事件发生时自动执行,常用于数据一致性、审计和日志记录等场景。
摘要由CSDN通过智能技术生成

存储过程

概念:

完成特定功能的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;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值