Oracle 触发器的使用小结

--建递增序列
CREATE SEQUENCE LZEAM_SP_LOOP_EQ_SEQ MINVALUE 1 INCREMENT BY 1 START WITH 1
测试:
SELECT LZEAM_SP_LOOP_EQ_SEQ.NEXTVAL FROM DUAL
--建触发器
CREATE OR REPLACE TRIGGER LZEAM.LZEAM_SP_LOOP_EQ_TRIGGER BEFORE INSERT ON SP_LOOP_EQ FOR EACH ROW BEGIN SELECT LZEAM.LZEAM_SP_LOOP_EQ_SEQ.NEXTVAL INTO :NEW.LOOP_EQ_CODE FROM DUAL; END;
--查触发器
SELECT * FROM USER_TRIGGERS;
/**启/禁用触发器*/
ALTER TABLE SP_LOOP_EQ DISABLE ALL TRIGGERS ALTER TABLE SP_LOOP_EQ ENABLE ALL TRIGGERS

(0)

相关推荐

  • Oracle触发器用法实例详解

    本文实例讲述了Oracle触发器用法.分享给大家供大家参考,具体如下: 一.触发器简介 触发器的定义就是说某个条件成立的时候,触发器里面所定义的语句就会被自动的执行.因此触发器不需要人为的去调用,也不能调用.然后,触发器的触发条件其实在你定义的时候就已经设定好了.这里面需要说明一下,触发器可以分为语句级触发器和行级触发器.详细的介绍可以参考网上的资料,简单的说就是语句级的触发器可以在某些语句执行前或执行后被触发.而行级触发器则是在定义的了触发的表中的行数据改变时就会被触发一次. 具体举例: 1.

  • Oracle创建主键自增表(sql语句实现)及触发器应用

    1.创建表 复制代码 代码如下: createtableTest_Increase( useridnumber(10)NOTNULLprimarykey,/*主键,自动增加*/ usernamevarchar2(20) ); 2.创建自动增长序列 复制代码 代码如下: CREATESEQUENCETestIncrease_Sequence INCREMENTBY1--每次加几个 STARTWITH1--从1开始计数 NOMAXVALUE--不设置最大值,设置最大值:maxvalue9999 NO

  • SqlServer实现类似Oracle的before触发器示例

    1. 插入数据前判断数据是否存在 SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ============================================= -- Author: <Author,,Name> -- Create date: <Create Date,,> -- Description: <Description,,> -- =============================

  • oracle 存储过程和触发器复制数据

    一.存储过程的创建和使用 1.创建程序包,并在程序中创建存储过程 create or replace PACKAGE NCS_ICP_TJ AS /*lfx@ncs-cyber.com.cn*/ /* TODO 在此输入程序包声明 (类型, 异常错误, 方法等) */ /*根据备案主体ID拷贝通过表备案数据到备案临时表,拷贝5张*/ PROCEDURE ICP_PASS_TO_TEMP( v_main_id IN icp_gn_temp_baxx_zt.ztid%TYPE, v_lyd IN i

  • Oracle触发器实例代码

    Oracle触发器,用于选单后修改选单的表的触发动作. --备货检验选单后 回写备货状态 CREATE OR REPLACE TRIGGER tri_TobaccoStockINSERT after INSERT ON "TobaccoStockQuality" FOR each ROW BEGIN UPDATE "GoodsStock" SET "FirstCheckState"=-1 WHERE "ID"=:NEW.&qu

  • oracle 触发器 学习笔记

    功能: 1. 允许/限制对表的修改 2. 自动生成派生列,比如自增字段 3. 强制数据一致性 4. 提供审计和日志记录 5. 防止无效的事务处理 6. 启用复杂的业务逻辑 开始 create trigger biufer_employees_department_id before insert or update of department_id on employees referencing old as old_value new as new_value for each row wh

  • oracle监控某表变动触发器例子(监控增,删,改)

    使用oracle触发器 实现对某个表的增改删的监控操作,并记录到另一个表中. 代码: 复制代码 代码如下: create or replace trigger test_trigger    before insert or update or delete on test_table    for each row  declare    v_id        varchar2(30);    v_bdlb      varchar2(1);    v_jgdm      VARCHAR2(

  • Oracle 触发器的使用小结

    --建递增序列 CREATE SEQUENCE LZEAM_SP_LOOP_EQ_SEQ MINVALUE 1 INCREMENT BY 1 START WITH 1 测试: SELECT LZEAM_SP_LOOP_EQ_SEQ.NEXTVAL FROM DUAL --建触发器 CREATE OR REPLACE TRIGGER LZEAM.LZEAM_SP_LOOP_EQ_TRIGGER BEFORE INSERT ON SP_LOOP_EQ FOR EACH ROW BEGIN SELEC

  • oracle 触发器 实现出入库

    用语言实现 好处: 1.可以减少对数据库的访问. 2.可移植性好. 坏处: 1.操作起来考虑的东西较多,修改一处就要修改别一处.也就是说是相互关联的.如果少改了某一处,很可能使数据不一致. 用触发器实现 好处: 1.可以使程序员从复杂的相互关联中解放出来,把精力放在复杂的业务上. 坏处: 1.可移植性差. 下面我就用一个例子实现一个简单的出入库.因为是例子表中所用到的字段很少.这里的例子只做为抛砖引玉. 数据表为入库金额表(以下简称入库表)income,出库金额表(以下简称出库表)outlay,

  • Oracle触发器表发生了变化 触发器不能读它的解决方法(必看)

    出现原因,是因为在更新的的表和读取的表是同一个表. CREATE or replace TRIGGER T_userupdateT BEFORE update ON T_user REFERENCING OLD AS old NEW AS N_ROW FOR EACH ROW DECLARE U_xtfidemp1 varchar(36); u_xtempcode1 varchar(20); u_xtempcodeCount int:=0; U_xtfidempCount int:=0; u_i

  • 快速学习Oracle触发器和游标

    目录 触发器: 1. 创建一个用于记录用户操作的触发器 2.创建一个当删除部门时,删除该部门下的所有雇员的触发器 3.创建一个在account表插入记录之后,更新myevent数据表的触发器 4.创建一个用于记录登录 DBA 身份用户的用户名和时间的触发器 游标: 1.使用隐式游标和 for 语句检索出职务是销售员(salesman)的雇员信息并输出 2.员工工资上调20%,使用隐式游标输出上调工资的员工数量 3.用显示游标和for语句检索出部门编号是30的雇员信息并输出 4.声明游标检索员工信

  • Oracle 触发器实现主键自增效果

    触发器的作用 触发器的作用类似拦截器.把一些针对数据库的DML操作(insert/update/delete/select)进行拦截,符合业务要求的进行操作,不符合要求的操作可以通过抛出异常来阻止 说白了就是数据确认(after)与安全性检查(before),此外触发器不针对select操作 1.首先创建表testUser         Oracle设置为不区分大小的,所以table名,言简意赅即可. CREATE TABLE testUser ( id NUMBER ( 11 ) prima

  • Oracle 触发器trigger使用案例

    目录 一.触发器定义 二.触发器分类 三.触发器功能 四.触发器语法 五.触发器使用案例 案例1:向job1表中插入一条数据后输出欢迎加入语句 案例2:数据校验,不允许星期二和星期四向emp1表中插入/更新数据. 案例3:创建触发器,记录表的删除数据 案例4:创建触发器,记录表的更新数据 一.触发器定义 Oracle触发器是使用者对Oracle数据库的对象做特定的操作时,触发的一段PL/SQL程序代码器.触发的事件包括对表的DML操作,用户的DDL操作以及数据库事件等. 二.触发器分类 触发器分

  • Oracle别名使用要点小结

    目录 一:使用别名的好处 二:测试小结 总结 今天在写一个简单的SQL语句并执行时抛出了如下图所示的一个错误提示信息! 恩,此异常信息很明显,在SQL语句中标示符的长度过长了,简短一些就应该没问题了,我查看了一下我的SQL语句发现是我的查询字段的列别名过长,实际测试的结果为列字段别名的最大长度为30个字节! 注意:我的测试数据库是ORACLE 11.2.0.4.0(如下图所示) ok,问题搞定了,对应的更多的错误信息及解决方案,也可以从ORACLE的错误信息手册中查询比如(针对此问题): Err

  • Oracle触发器和程序包的基本介绍

    目录 一.触发器的概念 1.触发器的基本概念 2.触发器的分类 二.触发器的创建 1.DML触发器的创建 3.系统触发器 4.触发器的禁用和启用 5.触发器的查看和删除 三.程序包 1.程序包的创建 2.程序包的删除 四.总结 一.触发器的概念 1.触发器的基本概念 触发器本身是一段程序代码,类似于存储过程和函数,但是与存储过程和函数不同的是,存储过程和函数创建后保存在oracle数据库中,如果要执行需要用户调用才可以.触发器创建完成后,以独立的对象存储在oracle数据库中,根据事先定义的触发

随机推荐