触发器的奇怪问题
我写的一个触发器在不同的oracle版本处理不一致,请问是不是关于触发器oracle有设置啊?
版本一 oracle 10g 触发器正常
版本二 oracle 9 报错,错误如下
java.sql.SQLException: ORA-01403: 未找到数据
ORA-06512: 在"HBDRCI_SHENPI.TRG_F1613_USER", line 11
ORA-04088: 触发器 'HBDRCI_SHENPI.TRG_F1613_USER' 执行过程中出错
在版本一下,如果没有找到数据则不插入数据,不报错
版本二下如果找不到数据就会报如上错误,当然如果查询到数据就没有任何问题
触发器如下
create or replace trigger TRG_F1613_USER
after update on spxx_t_f1613
REFERENCING OLD AS OLD NEW AS NEW FOR EACH ROW
declare
ename varchar2(100);
enperson varchar2(100);
enadd varchar2(200);
enphone varchar2(30);
begin
--取企业名称
select ku_name into ename from wk_t_user where ku_id =
(select SPXX_N_USERID from spxx_t_examples where spxx_c_exmid = (select SPXX_C_EXMID from SPXX_T_COURSE where SPXX_C_ID = :new.SLJDID));
--取其它信息
select sp_c_prnname, sp_c_enpadd,sp_c_manphone into enperson,enadd,enphone
from sp_t_userenp where sp_n_userid = (select SPXX_N_USERID from spxx_t_examples where spxx_c_exmid = (select SPXX_C_EXMID from SPXX_T_COURSE where SPXX_C_ID = :new.SLJDID));
--插入新值
insert into SPXX_T_F1613_USER (SLJDID,QYMC,XXDZ,FRDBXM,LXDHHM) values(:new.SLJDID,ename,enadd,enperson,enphone);
end TRG_F1613_USER;

