数据开发-Oracle存储过程

Oracle存储过程

1.执行并打印执行存储过程

F9:测试
Ctrl+N:单步进入

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.创建游标并遍历游标进行查询

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.判断语句

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.循环语句

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.导出json文件

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

6.导出csv文件

在这里插入图片描述
在这里插入图片描述

7.存储函数

一般来讲,过程和函数的区别在于函数可以有一个返回值;而过程没有返回值。
但过程和函数都可以通过out指定一个或多个输出参数,我们可以利用out参数,在过程和函数中实现返回多个值。

--查询某个员工的年收入
create or replace function queryempincome(eno in number)
return number
as
  --月薪和奖金
  psal   emp.sal%type;
  pcomm  emp.comm%type;
begin
  select sal,comm into psal,pcomm from emp where empno=eno;
  --返回年收入
  return psal*12+nvl(pcomm,0);
end;

8.触发器

create trigger  trigger_name
 trigger_time
 trigger_event 
 on table_name for each row 
 begin
 sql语句
end;

trigger_name:触发器名称
trigger_time:触发时间,可以是before(检查约束前触发)或者after(检查约束后触发)
trigger_event:触发器的触发事件,可以是insert、updata或者delete.对同一个表相同触发时间的相同触发事件,只能定义一个触发器。所以一张表上最多只能定义6个触发器
sql语句:要去处理的一系列操作,可能不止一条SQL语句,不允许select操作执行
指定结束符:通过delimiter来指定结束符,delimiter +任意符号即可

触发器的具体创建如下:

delimiter &&
 create trigger tri_1
 after 
 insert 
 on test for each row 
 begin
    set @count = @count + 1;
 end;
&&

使用过程如下:
首先,定义一个变量记录数据中的个数,初始化为10
在这里插入图片描述
再将这个变量值修改为2
在这里插入图片描述
此时插入一条数据,insert语句会触发触发器执行sql语句,此时查询出来的结果就为3了
在这里插入图片描述
删除触发器:
要删除film表上的触发器ins_film:

drop trigger ins_film;

查看触发器:
查询指定触发器的指定信息,查看方式是查询系统表的infromation_schema.tiggers表

select * from triggers where triggers_name = 'ins_film_bef' \G

在这里插入图片描述
触发器的限制:

  1. 存储过程或者函数通过OUT或者INOUT类型的参数将数据返回触发器是可以的,但是不能调用直接返回数据的过程
  2. 不能在触发器中使用以显式或隐式方式开始或结束事务的语句。如start、trans-action、commit或者rollback
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值