问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

PL/SQL基础的触发器

发布网友 发布时间:2022-04-07 22:00

我来回答

1个回答

热心网友 时间:2022-04-07 23:30

触发器(Trigger)与一个表或数据库事件联系在一起的,当一个触发器事件发生时,定义在表上的触发器被触发。变量和常量
变量存放在内存中以获得值,能被PL/SQL块引用。你可以把变量想象成一个可储藏东西的容器,容器内的东西是可以改变的。
声明变量
变量一般都在PL/SQL块的声明部分声明,PL/SQL是一种强类型语言,这就是说在引用变量前必须首先声明,要在执行或异常处理部分使用变量,那么变量必须首先在声明部分进行声明。
声明变量的语法如下:
Variable_name [CONSTANT] databyte [NOT NULL][:=|DEFAULT expression]
注意:可以在声明变量的同时给变量强制性的加上NOT NULL约束条件,此时变量在初始化时必须赋值。
给变量赋值
给变量赋值有两种方式:
. 直接给变量赋值
X:=200;
Y=Y+(X*20);
. 通过SQL SELECT INTO 或FETCH INTO给变量赋值
SELECT SUM(SALARY),SUM(SALARY*0.1)
INTO TOTAL_SALARY,TATAL_COMMISSION
FROM EMPLOYEE
WHERE DEPT=10;
常量
常量与变量相似,但常量的值在程序内部不能改变,常量的值在定义时赋予,,他的声明方式与变量相似,但必须包括关键字CONSTANT。常量和变量都可被定义为SQL和用户定义的数据类型。
ZERO_VALUE CONSTANT NUMBER:=0;
这个语句定了一个名叫ZERO_VALUE、数据类型是NUMBER、值为0的常量。
标量(scalar)
数据类型
标量(scalar)数据类型没有内部组件,他们大致可分为以下四类:
. number
. character
. date/time
. boolean
表1显示了数字数据类型;表2显示了字符数据类型;表3显示了日期和布尔数据类型。
表1 Scalar Types:Numeric
Datatype
Range
Subtypes
description
BINARY_INTEGER
-214748-2147483647
NATURAL
NATURAL
NPOSITIVE
POSITIVEN
SIGNTYPE
用于存储单字节整数。
要求存储长度低于NUMBER值。
用于*范围的子类型(SUBTYPE):
NATURAL:用于非负数
POSITIVE:只用于正数
NATURALN:只用于非负数和非NULL值
POSITIVEN:只用于正数,不能用于NULL值
SIGNTYPE:只有值:-1、0或1.
NUMBER
1.0E-130-9.99E125
DEC
DECIMAL
DOUBLE
PRECISION
FLOAT
INTEGERIC
INT
NUMERIC
REAL
SMALLINT
存储数字值,包括整数和浮点数。可以选择精度和刻度方式,语法:
number[([,])]。
缺省的精度是38,scale是0.
PLS_INTEGER
-2147483647-2147483647
与BINARY_INTEGER基本相同,但采用机器运算时,PLS_INTEGER提供更好的性能 。
表2 字符数据类型
datatype
rang
subtype
description
CHAR
最大长度32767字节
CHARACTER
存储定长字符串,如果长度没有确定,缺省是1
LONG
最大长度2147483647字节
存储可变长度字符串
RAW
最大长度32767字节
用于存储二进制数据和字节字符串,当在两个数据库之间进行传递时,RAW数据不在字符集之间进行转换。
LONGRAW
最大长度2147483647
与LONG数据类型相似,同样他也不能在字符集之间进行转换。
ROWID
18个字节
与数据库ROWID伪列类型相同,能够存储一个行标示符,可以将行标示符看作数据库中每一行的唯一键值。
VARCHAR2
最大长度32767字节
STRINGVARCHAR
与VARCHAR数据类型相似,存储可变长度的字符串。声明方法与VARCHAR相同
表3 DATE和BOOLEAN
datatype
range
description
BOOLEAN
TRUE/FALSE
存储逻辑值TRUE或FALSE,无参数
DATE
01/01/4712 BC
存储固定长的日期和时间值,日期值中包含时间
LOB数据类型
LOB(大对象,Large object) 数据类型用于存储类似图像,声音这样的大型数据对象,LOB数据对象可以是二进制数据也可以是字符数据,其最大长度不超过4G。LOB数据类型支持任意访问方式,LONG只支持顺序访问方式。LOB存储在一个单独的位置上,同时一个LOB定位符(LOB locator)存储在原始的表中,该定位符是一个指向实际数据的指针。在PL/SQL中操作LOB数据对象使用ORACLE提供的包DBMS_LOB.LOB数据类型可分为以下四类:
. BFILE
. BLOB
. CLOB
. NCLOB
操作符
与其他程序设计语言相同,PL/SQL有一系列操作符。操作符分为下面几类:
. 算术操作符
. 关系操作符
. 比较操作符
. 逻辑操作符
算术操作符如表4所示
operator
operation
+

-

/

*

**
乘方
关系操作符主要用于条件判断语句或用于where子串中,关系操作符检查条件和结果是否为true或false,表5是PL/SQL中的关系操作符
operator
operation
<
小于操作符
<=
小于或等于操作符
>
大于操作符
>=
大于或等于操作符
=
等于操作符
!=
不等于操作符
<>
不等于操作符
:=
赋值操作符
表6 显示的是比较操作符
operator
operation
IS NULL
如果操作数为NULL返回TRUE
LIKE
比较字符串值
BETWEEN
验证值是否在范围之内
IN
验证操作数在设定的一系列值中
表7.8显示的是逻辑操作符
operator
operation
AND
两个条件都必须满足
OR
只要满足两个条件中的一个
NOT
取反

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
谁能给个单机版的风云之雄霸天下啊?? 求风云雄霸天下PC单机游戏WIN7版 雄霸天下任务指南 开心网001老房子卖了以后家具还有吗? 为什么001开心网买房子组件删除仓库里的东西都没了 请教一下,开心001的开心庄园里面的建材有好多富余的的 除了5元一个卖... 开心网001小号怎么给大号送房子? 开心网001多少级能送别人房子?多少级能接受别人给的房子? 开心网001果实或家具能送人吗 开心网(kaixin001)怎么买外地房子? 鱼丸子的做法 怎样做鲅鱼圆子 鲅鱼丸子怎样做有弹性 做鱼丸加肥肉起什么作用 鲅鱼可以做鱼丸子吗 怎样使鲅鱼丸更有嚼劲 鲅鱼丸子做法怎么做 鲅鱼丸子可以生着放冰箱吗? 丹麦之笙有源音箱A5对比D5那款更好? 金琅优闲6号书架音箱听人声怎么样 金琅休闲2号豪华版MKⅡ音箱 配什么功放好? 为什么会觉得领克比哈弗时尚、高级、不俗和有味道? 单喇叭和多喇叭音箱的区别 金琅ac-782音箱怎么样 领克故障率怎么样 惠惠M5A有源音箱音质如何? 领克APP和车主运营,一张被外界忽略的“牌” | 汽车产经 金琅乐神音箱 这套音响是乐神哪个型号?是老乐神?原价多少? 金琅的音箱怎么样 中高端纯电市场,领克ZERO CONCEPT提前占一位 信息系统项目管理师相当于什么级别, 和注册会计师比呢,是否同级 香港有移动通讯营业厅吗? 在内陆如何为中国移动香港的SIM卡充值? 请问中国香港移动客服电话是多少? 中国移动网上营业厅怎么办国际漫游 我登录中国移动服务厅查询我的订单却需要二次鉴权的服务密码,但我不知道服务密码,上网查了点动态密码就 去香港中国移动神州行的卡怎么办日套餐? 到香港电话机左上角显示cmhk是什么意思 想在淘宝开个童装店如何寻找好的货源? 想在淘宝卖童装,想问问哪儿进货啊 我想开淘宝店卖童装,怎么弄啊,货源在哪找啊 我想在淘宝上卖外贸童装请问哪里有货源? 我想知道淘宝童装独家定制,里边的货源是怎么拿货的,有的还自己生产,想了解细节。 有正在经营淘宝童装店的朋友吗?咨询一下童装代销的货源有哪些 好吗? 华夏信用卡还款必须要华夏借记卡吗 淘宝童装哪家的比较好啊?最好支持批发 我想在淘宝网上开个童装网店,不知从哪里找货源 想开淘宝童装店,想从阿里巴巴进货,不知道行不行 开淘宝店卖童装利润怎么样 华夏银行信用卡还款一次性还要不要手续?