oracle 触发器number判断空值,:NEW赋值,for each row,sql变量引号,to_date,to_char

摘要:
1.number类型在库中可能存在null这种数据判断是否为空时要用如下:IF(nvl(:NEW.BACAH,0)0)不能用IF(BACAHISNOTNULL)2.2.1、取值时,需要到:NEW中取,有时也要到:OLD中取,具体情况具体分析赋值如红色1.SELECTB38_CODEINTOcodeFROMTEMPWHEREBAC_BACAW=:NEW.BACAWANDBAC_BACAE=:NE

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》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇[转]微信小程序、微信公众号、H5之间相互跳转空间统计笔记之二(分布模式工具集,Analyzing Patterns Toolset)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Linux内存描述之内存节点node--Linux内存管理(二)

1 内存节点node 1.1 为什么要用node来描述内存 这点前面是说的很明白了, NUMA结构下, 每个处理器CPU与一个本地内存直接相连, 而不同处理器之前则通过总线进行进一步的连接, 因此相对于任何一个CPU访问本地内存的速度比访问远程内存的速度要快 Linux适用于各种不同的体系结构, 而不同体系结构在内存管理方面的差别很大. 因此linux内核...

Java基础知识提要

1、简述Java的基本历史 java起源于SUN公司的一个GREEN的项目,其原先目的是:为家用消费电子产品发送一个信息的分布式代码系统,通过发送信息控制电视机、冰箱等 2、简单写出Java特点,写出5个以上,越多越好 简单的、面向对象的、分布式的、安全的、稳定的、与平台无关的、可解释的、多线的、动态的语言。 3、什么是Java? JAVA:一种编程...

【12c】Oracle Restart中的SRVCTL命令详解

SRVCTL,服务控制实用工具(Service Control Utility),可用于对Oracle Restart和Oracle RAC的配置和管理,本篇主要介绍SRVCTL命令在Oracle Restart中的应用,其中,详细介绍config、status命令,并列出其它命令的用法。 1 srvctl命令语法 Usage: srvctl <co...

内表、结构赋值转换规则

内表转换规则... 57 C语言中的结构对齐... 57 ABAP结构体对齐... 58 结构体相互赋值转换规则... 59 MOVE-CORRESPONDING(结构体赋值)... 62 内表转换规则 内表只能被转换成其他内表,而不能转换成结构或基本类型。 一个内表能否转换成其他内表与内表中的现有数据行没有关系,而是看两个内表的行结构是否可转换...

LodopJS代码模版的加载和赋值

Lodop模版有两种方法,一种是传统的JS语句,可以用JS方法里的eval来执行,一种是文档式模版,是特殊格式的base64码,此篇博文介绍JS模版的加载和赋值。两种模版都可以存入一下地方进行调用,比如数据库等。 JS模版的生成,可查看本博客的相关博文:Lodop的JS模版代码、文档式模版 生成加载赋值博文索引 关于该JS模版的加载,需要使用JS里的一个方...

jQuery .tmpl(), .template()学习资料小结

昨晚无意中发现一个有趣的jQuery插件.tmpl(),其文档在这里。官方解释对该插件的说明:将匹配的第一个元素作为模板,render指定的数据,签名如下: .tmpl([data,][options]) 其中参数data的用途很明显:用于render的数据,可以是任意js类型,包括数组和对象。options一般情况下都是选项了,官方指出,此处的optio...