oracle 触发器number判断空值,:NEW赋值,for each row,sql变量引号,to_date,to_char
1.number类型在库中可能存在null这种数据
判断是否为空时要用如下:
IF(nvl(:NEW.BACAH,0) <>0)
不能用IF(BACAH IS NOT NULL)
2.
2.1 、取值时,需要到:NEW中取,有时也要到:OLD中取,具体情况具体分析
赋值如红色
1.SELECT B38_CODE INTO code FROM TEMP WHERE BAC_BACAW=:NEW.BACAW AND BAC_BACAE=:NEW.BACAE;
变量赋值
2.temp:==:NEW.BACAE
2.2、 FOR EACH ROW代表一条一条数据执行
create or replace TRIGGER TR_BAC
      BEFORE  INSERT OR UPDATE
      ON BAC_BACK
      FOR EACH ROW
      DECLARE
3. sql语句放入变量中,并执行,注意引号的运用
sql_temp := 'UPDATE b38_back SET '||code||'='||:NEW.BACAH || ' WHERE B0110= '''||:NEW.B0110||''' AND TO_CHAR (B38Z0,''YYYYMM'') = TO_CHAR(TO_DATE('''||:NEW.BACZ0||'''),''YYYY'')||''01''';
execute immediate sql_temp;
number型一个引号,varchar2三个引号,看例子分析一下,很简单,为啥yyyymm是俩个引号,因为时间执行的sql时yyyy要放入到’yyyy‘中,所以俩个引号,同理'''||:NEW.B0110||'''也要是’1000‘,这种格式,第一个引号与前面的引号相连,后面俩个空1000左右俩个引号
4. TO_CHAR 与 TO_DATE的使用,如3,
TO_CHAR (B38Z0,''YYYYMM'') = TO_CHAR(TO_DATE('''||:NEW.BACZ0||'''),''YYYY'')||''01''';
注意如下: 要将变量转为date类型,不然会出现to_char('01-1月-15',‘yyyy’)出错
oracle 触发器number判断空值,:NEW赋值,for each row,sql变量引号,to_date,to_char的更多相关文章
- oracle触发器加条件判断
		oracle触发器加条件判断,如果某个字段,isnode=0,那么不执行下面的方法,数据如下: create or replace trigger tr_basestation_insert_emp ... 
- oracle 触发器学习
		触发器使用教程和命名规范 目 录触发器使用教程和命名规范 11,触发器简介 12,触发器示例 23,触发器语法和功能 34,例一:行级触发器之一 45,例二:行级触发器之二 46,例三:INSTEA ... 
- Oracle触发器实例(网搜)
		触发器使用教程和命名规范 目 录触发器使用教程和命名规范 11,触发器简介 12,触发器示例 23,触发器语法和功能 34,例一:行级触发器之一 45,例二:行级触发器之二 46,例三:INSTEA ... 
- oracle触发器应用
		首先给大家推荐两篇我看后的博文,我已经内容转载过来: 1.对触发器的讲解 本篇主要内容如下: 8.1 触发器类型 8.1.1 DML触发器 8.1.2 替代触发器 8.1.3 系统触发器 8.2 创建 ... 
- SQL server与Oracle触发器的创建与使用
		SQL Server 1创建触发器 GO BEGIN IF (object_id('WMY', 'tr') is not null) DROP trigger WMY END; GO CREATE T ... 
- 问题:Oracle出发器;结果:1、Oracle触发器详解,2、Oracle触发器示例
		ORACLE触发器详解 本篇主要内容如下: 8.1 触发器类型 8.1.1 DML触发器 8.1.2 替代触发器 8.1.3 系统触发器 8.2 创建触发器 8.2.1 触发器触发次序 8.2.2 创 ... 
- oracle 触发器的实例(转)
		触发器使用教程和命名规范 目 录 目录 触发器使用教程和命名规范 1 1,触发器简介 1 2,触发器示例 2 3,触发器语法和功能 3 4,例一:行级触发器之一 4 5,例二:行级触发器之二 4 6 ... 
- Oracle触发器原理、创建、修改、删除
		本篇主要内容如下: 8.1 触发器类型 8.1.1 DML触发器 8.1.2 替代触发器 8.1.3 系统触发器 8.2 创建触发器 8.2.1 触发器触发次序 8.2.2 创建DML触发器 8.2. ... 
- ORACLE 触发器
		•1.1 触发器类型 • DML触发器 • 替代触发器 • 系统触发器 •1.2 创建触发器 • 触发器触发次序 • 创建DML触发器 • 创建替代(INSTEAD OF)触发器 • 创建系统事件触发 ... 
随机推荐
- hadoop单机安装
			1.解压hadoop-1.0.3-bin.tar.gz放到指定目录下. 2.安装java环境,参照文档 3.Ssh无密登录 4.修改conf下四个文件 Hadoop-env.sh: export JA ... 
- solr异常--Expected mime type application/octet-stream but got text/html.
			Exception in thread "main" org.apache.solr.client.solrj.impl.HttpSolrServer$RemoteSolrExce ... 
- HDU 5922 Minimum’s Revenge 【模拟】 (2016CCPC东北地区大学生程序设计竞赛)
			Minimum's Revenge Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others ... 
- JDK 1.6.0和 6.0 有啥区别,JavaTM SE 6 的平台名字和版本号的说明(转)
			一直这么理解,今天才看到官方的解释,真是有点汗颜. 核心就是 6.0用于平台和产品的名字,而1.6.0用于开发者. 他们指的是同一个东西. 原文地址:http://java.sun.com/javas ... 
- Unity3d 使用DX11的曲面细分
			Unity3d surface Shaderswith DX11 Tessellation Unity3d surface shader 在DX11上的曲面细分 I write this articl ... 
- C# 使用Nlog记录日志到数据库   使用LogEventInfo类获取,命名空间名称、类名、方法名
			原文地址:http://dotnet.9sssd.com/csbase/art/793 [摘要]Nlog是一个很不错的.NET日志记录组件,它可以将日志输出到控件台,保存到文本,也可以很方便的记录到数 ... 
- mac下的改装人生——mbp拆卸的各种资源整理
			这几天弄了好多的mac上硬件的问题,我自己的mac也被我拆了3次,感觉自己终于跟硬件扯上关系了哈. 在这里放一些我找到比较好的资源教程,供大家学习,如果我以后还需要继续拆我的macbook,我也会回来 ... 
- 《University Calculus》-chaper8-无穷序列和无穷级数-泰勒定理的证明
			泰勒定理: 证明: 
- hdoj 2199 Can you solve this equation?【浮点型数据二分】
			Can you solve this equation? Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K ( ... 
- [置顶] [MATLAB技术贴]漫谈MATLAB矩阵转置
			矩阵转置是matlab最基本的操作了,但这个基本操作,也是很多初学者容易出现问题的地方.本帖通过几个实例演示matlab矩阵转置的操作. 方法一:' 运算符与 .' 运算符 >>a ... 
