易截截图软件、单文件、免安装、纯绿色、仅160KB

ORACLE触发器

触发器
 
q      触发器是当特定事件出现时自动执行的存储过程
q      特定事件可以是执行更新的DML语句和DDL语句
q      触发器不能被显式调用
q      触发器的功能:
q      自动生成数据
q      自定义复杂的安全权限
q      提供审计和日志记录
q      启用复杂的业务逻辑
 
创建触发器的语法:
CREATE [OR REPLACE] TRIGGER trigger_name
AFTER | BEFORE | INSTEAD OF
[INSERT] [[OR] UPDATE [OF column_list]]
[[OR] DELETE]
ON table_or_view_name
[REFERENCING {OLD [AS] old / NEW [AS] new}]
[FOR EACH ROW]
[WHEN (condition)]
pl/sql_block;
 
触发器由三部分组成:
q      触发器语句(事件)
q      定义激活触发器的 DML 事件和 DDL 事件
q      触发器限制
q      执行触发器的条件,该条件必须为真才能激活触发器
q      触发器操作(主体)
q      包含一些 SQL 语句和代码,它们在发出了触发器语句且触发限制的值为真时运行
 
创建触发器
CREATE OR REPLACE TRIGGER first_emp_trg
AFTER INSERT
ON emp
FOR EACH ROW
BEGIN
  IF (:NEW.sal < 10000) THEN
    DBMS_OUTPUT.PUT_LINE('less 10000');
  ELSE
    DBMS_OUTPUT.PUT_LINE('ge 10000');
  END IF;
END;
 
 
SQL> insert into emp(empno,ename,sal) values(8102,'HuangPei',10000);
 
ge 10000
 
1 row inserted
 
SQL> insert into emp(empno,ename,sal) values(8103,'HuangPei',100);
 
less 10000
 
1 row inserted
 
查询触发器
SQL> select trigger_name,trigger_type,triggering_event,status from user_triggers;
 
TRIGGER_NAME   TRIGGER_TYPE      TRIGGERING_EVENT   STATUS          &n


相关文档:

Oracle Sql技巧 Upsert, Multitable Insert, Undrop

UpSert功能:
MERGE <hint> INTO <table_name>
USING <table_view_or_query>
ON (<condition>)
WHEN MATCHED THEN <update_clause>
WHEN NOT MATCHED THEN <insert_clause>;
MultiTable Inserts功能:
Multitable inserts allow a single INSERT INTO .. SELECT statement to ......

Oracle数据库备份方式

自己整理了下Oracle的数据库备份方案,用过冷备份。其他没有测试过
一、 导出/导入(Export/Import)
  利用Export可将数据从数据库
中提取出来,利用Import则可将提取出来的数据送回到Oracle
数据库中去。
  1、 简单导出数据(Export)和导入数据(Import):
  Oracle支持三种方式类型的输出:
  (1)、表方式(T方 ......

ORACLE directory 目录


Create directory让我们可以在Oracle数据库中灵活的对文件进行读写操作,极大的提高了Oracle的易用性和可扩展性。
其语法为:
CREATE [OR REPLACE] DIRECTORY directory AS 'pathname';
本案例具体创建如下:
create or replace directory exp_dir as '/tmp';
目录创建以后,就可以把读写权限授予特定用户 ......

ORACLE程序包

程序包
 
包主体/规范名字一样
包主体/规范中的对应参数必须类型及名字一样
只能使用强类型的REF游标
 
创建程序包规范
create or replace package my_pack
is
       procedure find_emp_proc(eno emp.empno%type);
       function fin ......

ORACLE过程、函数

过程、函数
 
 
 
create or replace procedure p1
is
  empname emp.ename%type;
begin
  select ename into empname from emp where empno=7788;
  dbms_output.put_line(empname);
end;
 
SQL> ed
SQL> /
 
Procedure created
 
SQL> exec p1; ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号