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释放资源

初学oracle笔记-5
初学oracle笔记-5

  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;

相关文章:

  • 2021-12-29
  • 2022-12-23
  • 2021-11-18
  • 2021-08-10
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-11-08
  • 2022-12-23
  • 2021-12-20
  • 2021-09-26
  • 2022-12-23
  • 2021-06-01
相关资源
相似解决方案