ORACLE中触发器的判断IF语句

CREATEORREPLACETRIGGERCESHIBEFOREUPDATEONFRONT_AFOREACHROWBEGINIFUPDATING('FUCK')THEN... CREATE OR REPLACE TRIGGER CESHI
BEFORE UPDATE
ON FRONT_A
FOR EACH ROW
BEGIN
IF UPDATING('FUCK') THEN

ELSE

UPDATE FRONT_B B SET B.NAMEB='123456'
WHERE B.CODEB=:NEW.CODE;
END IF;
END;

如上面那个例子,我在IF条件成立后,不想执行任何操作,在THEN和ELSE之间需要写什么东西?
展开
 我来答
匿名用户
2013-03-07
展开全部
加一行 NULL 即可

例如:

SQL> DECLARE
2 testvalue INT;
3 BEGIN
4 testvalue := 200;
5
6 IF testvalue > 100 THEN
7
8 ELSIF testvalue = 100 THEN
9 dbms_output.put_line( '100' );
10 ELSE
11 dbms_output.put_line( '100-' );
12 END IF;
13
14 END;
15 /
ELSIF testvalue = 100 THEN
*
ERROR 位于第 8 行:
ORA-06550: 第 8 行, 第 9 列:
PLS-00103: 出现符号 "TESTVALUE"在需要下列之一时:
:= . ( @
% ;
ORA-06550: 第 14 行, 第 4 列:
PLS-00103: 出现符号 ";"在需要配郑下列之一时:
if

上面的例子, 可以看出,如果 IF ELSE 里枣漏面, 没有内容, 那么编译不通过。

下面是 加一行 NULL 通过的例子:

SQL> DECLARE
2 testvalue INT;
3 BEGIN
4 testvalue := 200;
5
6 IF testvalue > 100 THEN
7 NULL;
8 ELSIF testvalue = 100 THEN
9 dbms_output.put_line( '100' );
10 ELSE
11 dbms_output.put_line( '100-' );
12 END IF;
13
14 END;
15 /凳卖烂
PL/SQL 过程已成功完成。
haona_li
2013-03-07 · TA获得超过253个赞
知道小有建树答主
回答量:624
采纳率:0%
帮助的人:261万
展开全部
你把UPDATING('FUCK')取反,连else就可以去掉了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式