CREATE OR REPLACE TRIGGER test
BEFORE INSERT or update ON sdr FOR EACH ROW
BEGIN
SELECT qh INTO :NEW.qh FROM "abc" WHERE dq=:NEW.dq;
END;这样建立了触发器,但在添加表sdr中数据的时候,如果在表abc中没有相应信息的话就会出错.表abc中数据
dq qh
深圳 0755
...
如果我在表sdr中添加dq=合肥,表abc中未有合肥的区号,就出错了.请问怎么建立一个如果表abc中没有的话就用其它的代替或者空着,不要报错就行了.因为是向表sdr中导入数据.如果出错就停止导入了.
BEFORE INSERT or update ON sdr FOR EACH ROW
BEGIN
SELECT qh INTO :NEW.qh FROM "abc" WHERE dq=:NEW.dq;
END;这样建立了触发器,但在添加表sdr中数据的时候,如果在表abc中没有相应信息的话就会出错.表abc中数据
dq qh
深圳 0755
...
如果我在表sdr中添加dq=合肥,表abc中未有合肥的区号,就出错了.请问怎么建立一个如果表abc中没有的话就用其它的代替或者空着,不要报错就行了.因为是向表sdr中导入数据.如果出错就停止导入了.
select decode(qh,'合肥',’合肥‘,'想写什么就是什么啦') into :new.qh
from 'abc
where dq=:new.dq;
end;
if num > 0 then
SELECT qh INTO :NEW.qh FROM "abc" WHERE dq=:NEW.dq;
BEFORE INSERT or update ON sdr FOR EACH ROW
BEGIN
SELECT qh INTO :NEW.qh FROM "abc" WHERE dq=:NEW.dq;
exception
when others then
:new.qh:=null;
END;
/
BEFORE INSERT or update ON sdr FOR EACH ROW
DECLARE
i_rec INT;
BEGIN
select count(1) into i_rec
from abc" WHERE dq=:NEW.dq;
IF i_rec=1 THEN
SELECT qh INTO :NEW.qh FROM "abc" WHERE dq=:NEW.dq;
END IF;
exception
when others then
NULL;
END;
/
BEFORE INSERT or update ON sdr FOR EACH ROW
BEGIN
SELECT qh INTO :NEW.qh FROM "abc" WHERE dq=:NEW.dq;
exception
when others then
:new.qh:=null;
END;
/
IF i_rec=1 THEN
SELECT qh INTO :NEW.qh FROM "abc" WHERE dq=:NEW.dq;
ELSE
:NEW.qh:=null;
END IF;