触发器
触发器是关系数据库特有的一项技术,触发器的结构和过程函数一样。触发器的主要作用是对系统操作的维护
触发器是一个与数据库事件联系在一起,当事件发生时,触发器会自动的被调用。过程是用户显示的调用,触发器不能被直接调用,当发生指定事件时自动调用。
语句触发器:
案例:
第一步:创建表emp_log
create table emp_log(
who varchar2(20),
when date
)
第二步:在emp表上创建语句触发器
create or replace trigger trig_1 before insert or update or delete on emp
begin
insert into emp_log values(user,sysdate);
end;
第三步:在emp表上做update 或则delete或 insert操作时就会自动触发触发器trig_1;
查询 emp_log表可以看到插入到表中的内容
触发器简单来说就是在操作(修改,删除,添加)一个表单的时候进行记录,然后可以在创建的触发器中看到这些操作记录,这就是触发器的用处
存储过程
存储过程其实就是一种命名的PL/SQL块,它可以接收0到多个参数,或者输出0到多个参数。存储过程被保存在数据中,可以在应用程序中(Java 中...)或者在sql plus中被调用.
语法
create procedure 过程名[参数1,参数2,....] is
[变量]
begin
过程代码;
[exception
异常代码]
end [过程名];
案例:
create procedure pro_1 is
begin
dbms_output.put_line('Hello World!');
end pro_1;--end 后面可以不用带过程名,一般都不带
在sql plus中调用过程
SQL>exec[ute] pro_1; --方法一(在sql plus中执行)
SQL>begin --方法二(在pl/sql快中执行)
pro_1;
end;
存储过程是由流控制和SQL语句书写的过程,这个过程经编译和优化后存储在数据库服务器中,存储过程可由应用程序通过一个调用来执行,而且允许用户声明变量 。同时,存储过程可以接收和输出参数、返回执行存储过程的状态值,也可以嵌套调用。