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

Oracle 触发器,序列用途

 1、创建表t1 :create table t1 (id number,name nvarchar(8));
2、创建序列 :CREATE SEQUENCE t1_id INCREMENT BY 1 START WITH 1 MAXVALUE
1.0E28 MINVALUE 1 NOCYCLE CACHE 20 NOORDER
3. 创建触发器 :
CREATE TRIGGER tig_insert_t1
BEFORE INSERT ON "YINZQ"."T1"
begin
if (:new.id is null) then
select t1_id.nextval into :new.id from dual; //其中的:new.id 指的是t1表中新行的列
end if;
end;
Oracle触发器语法
触发器是特定事件出现的时候,自动执行的代码块。类似于存储过程,触发器与存储过程的区别在于:存储过程是由用户或应用程序显式调用的,而触发器是不能被直接调用的。
功能:
1、 允许/限制对表的修改
2、 自动生成派生列,比如自增字段
3、 强制数据一致性
4、 提供审计和日志记录
5、 防止无效的事务处理
6、 启用复杂的业务逻辑
触发器触发时间有两种:after和before。
1、触发器的语法:
CREATE [OR REPLACE] TIGGER触发器名 触发时间 触发事件
ON表名
[FOR EACH ROW]
BEGIN
pl/sql语句
END
其中:
触发器名:触发器对象的名称。
由于触发器是数据库自动执行的,因此该名称只是一个名称,没有实质的用途。
触发时间:指明触发器何时执行,该值可取:
before---表示在数据库动作之前触发器执行;
after---表示在数据库动作之后出发器执行。
触发事件:指明哪些数据库动作会触发此触发器:                        
insert:数据库插入会触发此触发器;
让oracle实现自增字段
先建序列,然后建立一个触发器实现!
cata0是表名,cata0_id是需要自增的字段!
CREATE SEQUENCE SEQ_cata0
 INCREMENT BY  1
 START WITH  1
 MAXVALUE  9999999
CREATE TRIGGER TRG_cata0 BEFORE
INSERT  ON cata0
FOR EACH ROW begin
   SELECT SEQ_cata0.NEXTVAL
     INTO :NEW.cata0_ID
     from DUAL;
End TRG_cata0;
/***
*@PARAM STNAME 不要创建序列的表,多个表则以“,”隔开
**/
CREATE OR REPLACE PROCEDURE PROC_CREATE_SEQ_TRIG(STNAME IN VARCHAR2)
AS
 STRSQL VARCHAR2(4000);
 TABLENAME VARCHAR2(50);
 PID VARC


相关文档:

Oracle 存储过程

 
create or replace procedure p   //有就替换,没有就创建
is
     cursor c is
         select * from emp for update;
begin
  for v_emp in c loop
      if (v_emp.deptno =10) then
 &nb ......

Oracle 触发器

 
create table emp2_log(
 uname varchar2(20),
 action varchar(10),
 atime date
);
create or replace trigger trig
   after insert or delete or update on emp2 for each row  //绑在一张表上,before after 都可
以,before是 插数据之前,after是之后
begin
 &nb ......

“优秀示例”: Oracle代码规程

 在PL/SQL中使用阵列处理是一个很好的做法(如,使用bulk collect和forall)。批量处理能够大大减少PL/SQL语句执行引擎的环境切换次数,从而提高其性能。
  另一个优秀示例是把存储过程中的所有代码放入锁定的软件包中,这样可以生成模块单元。把存储过程放入软件包里可以实现相关程序和功能的分组。当
单个包被使用 ......

Oracle中的covering index

 CSDN里的一个朋友问到了这个索引覆盖的概念。 这个概念很小的知识点,在我的论坛里有解释“”,不过作为Oracle版主,不能在回帖里加上网外的地址链接,所以这里在CSDN里帖上一份
比如有复合索引为3个字段:f1 + f2 + f3,请问: 
1: select f1, f2, f3, f4 from table where f1 = 'XX' and f2 = 'XX'. ......

Oracle索引笔记

 一.B-Tree索引(b-tree index)
1. 选项择索引字段的原则: 
在WHERE子句中最频繁使用的字段 
联接语句中的联接字段 
选择高选择性的字段(如果很少的字段拥有相同值,即有很多独特值,则选择性很好) 
ORACLE在UNIQUE和主键字段上自动建立索引 
在选择性很差的字段上建索引只有在这个字段的 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号