背景:

有一类轨迹数据来源于第三方接口,但接口推送的数据差一个轨迹描述字段(即对该条活动轨迹数据的各个字段拼接一下作为描述),叫双方研发重新改接口太浪费时间,所以想到利用触发器来解决,之前没写过触发器,于是现学现用,顺便做个笔记

触发器语法
CREATE [OR REPLACE] TRIGGER trigger_name
{BEFORE | AFTER }
{INSERT | DELETE | UPDATE [OF column [, column …]]}
[OR {INSERT | DELETE | UPDATE [OF column [, column …]]}...]
ON [schema.]table_name | [schema.]view_name
[REFERENCING {OLD [AS] old | NEW [AS] new| PARENT as parent}]
[FOR EACH ROW ]
[WHEN condition]
PL/SQL_BLOCK | CALL procedure_name;

语法解释:
trigger_name:触发器名称
before | after : 指定触发器是在触发事件发生之前触发还暗示发生之后触发
trigger_event:触发事件,在DML触发器中主要为insert、update、delete等
table_name:表名,表示发生触发器作用的对象
for each row:指定创建的是行级触发器,若没有该子句则创建的是语句级触发器
when trigger_condition:添加的触发条件
trigger_body:触发体,是标准的PL/SQL语句块

create or replace trigger RYGL_YSCLKK_INSERT_HDXXMS --创建或更新触发器RYGL_YSCLKK_INSERT_HDXXMS
 before insert  --插入前触发
 on t_ry_gjxx  --作用在t_ry_gjxx表
 for each row  --行级触发
declare
 xming varchar2(50);  --创建一个变量,因为对面没传了身份证没传名字,所以后续得去查名字赋值给这个变量
begin   --开始
if  :new.dtxxlx='YSCLKK' and :new.gjtszt='2' and :new.sfzh !='000000000000000000' and :new.hdfssj>'20191230000001' then --判断是否为借口推送数据且身份证是否是正常身份证号码
 select xm into xming from t_ry_jbxx where sfzh=:new.sfzh;  利用接口传过来的身份证去本地数据库查询姓名并赋值给xming变量
 :new.hdxxms:='您布控的车牌:'||substr(:new.bzhm,8,7)||'(姓名:'||xming||',身份证:'||:new.sfzh||')于'||to_char(to_date(:new.hdfssj,'yyyy-mm-dd hh24:mi:ss'),'yyyy-mm-dd hh24:mi:ss')||'通过'||:new.fsdshcs;       --拼接活动描述字符串并赋值给hdxxms字段
 :new.gjtszt:='0';    --将0赋值给gjtszt字段
 :new.rksj:=sysdate;   --将当前时间赋值给rksj字段
 end if;  --结束
end;  --结束

小记:

select 字段名 into 变量 from 表/视图  where 条件   表示将某个查询结果赋值给变量

:new表示操作完成后的值

:=表示赋值

例如:

:new.rksj:=sysdate; 表示将当前时间赋值给rksj字段,注意是冒号+等号,单个等号是等职计算

oracle 触发器(根据条件修改插入后的某个字段值)相关推荐

  1. oracle触发器判断空值,oracle触发器加条件判断、dblink

    --新增基站同步给电池组信息 create or replace trigger a_b_test after insert or update or delete on BJLT.BASESTATI ...

  2. oracle触发器中的after insert后继续触发,oracle触发器使用:after insert 与before insert的简单使用注意...

    创建触发器时,触发器类型为after insert , 在begin中 Select fieldA into v_a from tableA; 执行到此句时,会出错: --弹出错误信息提示 --ORA ...

  3. oracle触发器中的after insert后继续触发,Oracle之后插入触发器

    本Oracle教程解释了如何在Oracle中创建AFTER INSERT触发器的语法和示例.AFTER INSERT触发器表示Oracle将在执行INSERT操作之后触发此触发器. 语法 在Oracl ...

  4. oracle触发器不允许修改数据库,Oracle数据库使用触发器记录表数据修改记录

    --日志记录表 CREATE TABLE T_LOG ( RID VARCHAR2(32 BYTE), NAME VARCHAR2(1000 BYTE), RQ DATE DEFAULT sysdat ...

  5. oracle有条件执行插入语句

    oracle有条件执行插入语句 oracle 后面跟条件进行插入操作: insert into table_name (id,name)select '1', '2'from dual where n ...

  6. oracle 触发器的实例(转)

    触发器使用教程和命名规范 目  录 目录 触发器使用教程和命名规范 1 1,触发器简介 1 2,触发器示例 2 3,触发器语法和功能 3 4,例一:行级触发器之一 4 5,例二:行级触发器之二 4 6 ...

  7. Oracle 触发器使用实例

    触发器使用教程和命名规范 目 录 触发器使用教程和命名规范 1 1,触发器简介 1 2,触发器示例 2 3,触发器语法和功能 3 4,例一:行级触发器之一 4 5,例二:行级触发器之二 4 6,例三: ...

  8. mysql 事务 返回插入的值_Mysql同一个事务内记录成功插入后查询不出来

    背景: 1)mysql:Ver 14.12 Distrib 5.0.45, for Win32 (ia32) 2)mysql odbc驱动:3.51.22 3)vs2005 4)客户端用ado,odb ...

  9. 3、JavaWeb中Service层的作用、MyBatis的重要组件、mybatis-config.xml中的别名映射、properties配置、#{}和${}的区别、获取插入数据的主键值

    文章目录 1.Service层的作用 2.MyBatis重要组件 Resources SqlSessionFactoryBuilder SqlSessionFactory SqlSession 针对上 ...

最新文章

  1. Python matplotlib可视化:在Matplotlib中为坐标轴刻度添加自定义符号(例如,货币符号¥$等)、水平条形图(horizontal bar)
  2. PMP 学习之一:PMP五大过程组十大知识领域47个子过程
  3. 数据结构:选择排序(Selection sort)
  4. 还原数据库:The backup set holds a backup of a database other than the existing database……
  5. webView 显示一段 html 代码
  6. linux切换目录使用命令,linux命令切换目录的使用方法
  7. 【JAVA 第四章 流程控制语句】课后习题 二维坐标距离 三角形判断等
  8. VC++2005项目的目录结构设置
  9. 【MySQL】MySQL 中的 dual表
  10. 互联网分层架构的本质
  11. java中日历类的用法_java日期类的用法
  12. 给各位读者朋友们、热心访问本博客的朋友们的一份新年贺卡
  13. 经典测试用例--水杯测试
  14. 递归统计项目中的非空白代码行数
  15. 整站php_小白同学的福利:PHP常见面试题(附答案)
  16. SpringBoot 之 @Transaction注解的类级别和方法级别的区别
  17. 【虚拟机\UBunTu】E45: 已设定选项 ‘readonly‘ (请加 ! 强制执行)
  18. virtualbox虚拟机安装及镜像安装
  19. 写得太好了,大约《越狱》批评(发布)
  20. Android apps 拍立知-功能实现2(相机/选择相册及图像识别调用)

热门文章

  1. 大数据将怎样改写人才命运
  2. C语言程序设计第四版 苏小红 习题答案 3.5
  3. cdo处理数据(自用笔记
  4. 攻防世界-supersqli(堆叠注入)
  5. wordpress搏客用户注册收不到邮件解决办法
  6. MySQL:介于普通读和锁定读的加锁方式,linux视频格式转换
  7. 如何卸载2345全家桶
  8. 单片机:ADC模数转换实验(内含ADC介绍+XPT2046芯片介绍+硬件电路设计+软件编程设计+原始代码)
  9. 考计算机专业课的生物信息学,《生物信息学》一种新的考试方式
  10. 台式机装Windows 7,笔记本装Windows Vista Service Pack 2,真正想久用的电脑装Windows XP...