CREATE OR REPLACE TRIGGER TRG_BCPBS_AGENT_INFO --代理机构信息表 类型是6 招标代理机构
AFTER INSERT OR UPDATE ON bcpbs.t_agent_info
FOR EACH ROW
DECLARE
var_inc_oldid NUMBER(11); --企业id
var_inc_id NUMBER(11); --企业id
var_org_no VARCHAR2(32);
BEGIN
--转化代理机构
var_org_no:=bcpbs.fun_enterprise_organization_no(:NEW.organization_no);
---根据组织机构代码查询bics企业表中是否存在代理机构信息
SELECT id
INTO var_inc_oldid
FROM bics.t_inc_info
WHERE encode = var_org_no
AND inc_type = 6;
DELETE FROM bics.t_inc_info WHERE id = var_inc_oldid;
IF var_inc_oldid IS NOT NULL THEN --如果存在,删除该条记录
var_inc_id := var_inc_oldid;
ELSE
var_inc_id :=bics.seq_inc.nextval;
END IF;
---向企业表插入一条代理机构数据
INSERT INTO bics.t_inc_info
(is_link,
phase,
success,
encode,
inc_name,
inc_type,
license_code,
leager_alone,
legal,
link_name,
link_call,
link_certno,
id,
symbol,
register_address,
info_source,
system_code,
operate_op,
operate_name,
operate_date,
subjection
)
VALUES
(
9,
3,
1,
var_org_no,
:NEW.agent_name,
6,
:NEW.agent_certificate,
1,
:NEW.representative_name,
:NEW.linkman,
:NEW.linkman_phone,
:NEW.linkman_identityno,
var_inc_id,
decode(:NEW.status,0,1,1,9),
:NEW.register_address,
decode(:NEW.info_source, 0, 2, 1, 1, 9),
12,
0,
'BCPBS数据同步',
sysdate,
decode(:NEW.subjection, 0, 1, 1, 2, 2, 3, 3, 4, 1)
);
END;
请各位帮帮忙,我这个触发器哪里写的有问题,为什么我执行插入bcpbs.t_agent_info表一条数据,就提示:
ORA-04098: 触发器 'BCPBS.TRG_BCPBS_AGENT' 无效且未通过重新验证
想问下怎么调试触发器,怎么抛出异常,我知道执行通过不了,但我不知道哪里出了错。求各位朋友支招!跪谢!
------解决方案--------------------
你的触发器是否根本就没有编译通过,通过dba_triggers查看一下status的状态值是否是ENABLED,还有看你用的都是bcpbs.xxx的方式访问表,请问你这个用户是否有访问bcpbs.xxx相关表的权限,及是否具有在bcpbs用户下创建触发器的权限
------解决方案--------------------
你的触发器是否根本就没有编译通过,通过dba_triggers查看一下status的状态值是否是ENABLED,还有看你用的都是bcpbs.xxx的方式访问表,请问你这个用户是否有访问bcpbs.xxx相关表的权限,及是否具有在bcpbs用户下创建触发器的权限