初学oracle笔记-5

  1. 存储过程
    实际上是封装在服务器上的一段PLSQL的代码片段,已经编译好的代码
    客户端去调用存储过程,执行效率就会很高效
    语法:
    create {or replace} procedure 存储过程的名称(参数名 in|out 参数类型,参数名 in|out 参数类型)
    is | as
    –声明部分
    begin
    –业务逻辑
    end;
create or replace procedure proc_updatesal(vempno in number ,vnum in number)
is
	--声明变量
	vsal number;
begin
	select sal into vsal from emp where empno = vempno;
	update emp set sal = vasl + vnum where empno = vempno;
	commit;
end;

--调用
call  proc_updatesal(7788,100);
--调用2
declare 

begin
	proc_updatesal(7788,100);
end;
  1. JAVA调用存储过程
    JDBC的开发步骤:
    1导入驱动包
    2注册驱动
    3获取连接
    4获取执行SQL的statement
    5封装参数
    6执行SQL
    7获取结果
    8释放资源

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

  1. 触发器:当用户执行了 insert |update | delete 这些操作之后,可以出发一系列其它的动作
    作用:在动作执行之前或者之后,出发业务处理逻辑
    语法:
    create {or replace} triger 触发器的名称
    before | after
    insert | update | delete
    on 表名
    {for each row}
    declare

    begin

    end;
--插入员工之后,输出一句话:欢迎加入黑马程序员
create or replace trigger tri_test1
after
insert
on emp
declare

begin
	dbms_output.put_line('欢迎加入黑马程序员');
end;
create or replace trigger tri_test2
before 
insert 
on emp
declare
	--声明变量
	vday varchar2(10)
begin
	select trim(to_char(sysdate,'day')) into vday from dual;
	if vday = 'saturday' then
		dbms_output.put_line('不行');
		raise application_error(-20001,'出错了');
	end if;
end;

触发器的分类
语句级触发器:不管影响多少行,都只会执行一次
行级触发器:影响多少行,触发多少次 for each row
:old 代表旧的记录
:new 代表新的记录

模拟mysql中的ID的自增属性 auto_increment
insert into person values(null,‘张三’);

--序列
create sequence seq_person_pid;
--触发器
create or replace trigger tri_add_person_pid
before
insert
on person
for each row
declare

begin
	dbms_output.put_line(:new.pname);
	--给新记录的pid赋值
	select seq_person_pid.nextval into :new.pid from dual;
end;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值