ORACLE中触发器的判断IF语句

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之间需要写什么东西?

加一行 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 过程已成功完成。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-03-07
你把UPDATING('FUCK')取反,连else就可以去掉了

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网