oracle触发器加条件判断,如果某个字段,isnode=0,那么不执行下面的方法,数据如下: create or replace trigger tr_basestation_insert_emp before insert on BJLT.BASESTATION REFERENCING NEW AS new_val OLD AS old_val --在这里设置名字,然后可引用新值,旧值 for each row ) declare --local variables here begin i…
--新增基站同步给电池组信息 create or replace trigger a_b_test after insert or update or delete on BJLT.BASESTATION --REFERENCING NEW AS new_val OLD AS old_val --在这里设置名字,然后可引用新值,旧值 for each row ) begin if inserting then insert into BSMS.BS_INFO@TOBSMS_BETTERY_LOC…
今天遇到一个有意思的小问题,一同事有这样一个需求:在更新表T时,如果只是更新字段C,那么不希望触发该该表的触发器去处理业务逻辑.即想在触发器中做出判断:如果更新了字段C,那么跳出触发器,不处理业务逻辑,如果是更新其它字段,那么让触发器去处理业务逻辑. 他是这样做的 1: if :NEW.C != :OLD.C then 2: return; 3: end if; 但是这样有一个问题:更新不一定值有变化.当更新的值有变化时,它很好的实现了业务逻辑,但是如果更新的值没有变化,那…
1. IF 语法 IF 表达式 THEN ... END IF; 例如: set serverout on declare v_name varchar2(20):='&name'; begin if v_name='kiki' then dbms_output.put_line('登录成功'); end if; end; / --------执行内容结果如下------- 输入 name 的值: kiki 原值 2: v_name varchar2(20):='&name'; 新值 2:…
--decode条件判断函数 ,,,,,) from dual --需求:不通过连表查询,显示业主类型名称列的值 ,,,'商业','其他') from t_owners --case when then写法 select name,( case ownertypeid then '居民' then '事业单位' then '商业' else '其他' end )from t_owners --case when then 相对灵活的写法 select name,( case then '居民'…
关于条件判断的几个函数: 一.IF-ELSE 判断语句1.IF 语法 IF 表达式 THEN ... END IF; 输入账号名 kiki 以登陆账号 declare v_name ):='&x'; begin if v_name='kiki' then dbms_output.put_line('登录成功'); end if; end; 结果 2.IF-ELSE 语法 IF 表达式 THEN ... ELSE ... END IF; 输入用户名 kiki 以登陆用户,输入用户名错误,输出登陆失…