CREATE OR REPLACE TRIGGER venderAutoInsert
after INSERT
ON ar.hz_parties
REFERENCING NEW AS NEW OLD AS OLD
FOR EACH ROW
declare
org_type varchar2;
BEGIN
select party_type into org_type from hz_parties hz,pom_party_preferences p where hz.party_id=:new.party_id and party_type='ORGANIZATION' and preference_name='TRADING_PARTNER_TYPE'
and hz.party_id = p.party_id and preference_value in ('SELLER','BUYER&SELLER') ;
if (org_type is not null)
{
insert into venderinfor
(vi_excid,vi_excname,vi_sort,vi_usname,vi_date,vi_lastupdate_ususername,vi_lastupdate_usname,vi_lastupdatedate)
VALUES(:NEW.party_id,:NEW.party_name,'','APPS',sysdate-365*30,'APPS','APPS',sysdate-365*30)
};
END;
我简要说明下需求和逻辑:涉及到3个表:新注册信息表venderinfor,老注册信息表hz_parties,注册信息分类表pom_party_preferences。要求每次向hz_parties insert数据的时候,对数据进行检查,如果数据的party_type是'ORGANIZATION' 且preference_value in ('SELLER','BUYER&SELLER'),则向venderinfor表里也插入相应的一些数据。
party_type 和preference_value 这两个字段都在pom_party_preferences表里面。
Oracle 逐行触发器, 不能检索 被触发的表 刚才有个人胸告诉我的。那我该怎么办呢?
after INSERT
ON ar.hz_parties
REFERENCING NEW AS NEW OLD AS OLD
FOR EACH ROW
declare
org_type varchar2;
BEGIN
select party_type into org_type from hz_parties hz,pom_party_preferences p where hz.party_id=:new.party_id and party_type='ORGANIZATION' and preference_name='TRADING_PARTNER_TYPE'
and hz.party_id = p.party_id and preference_value in ('SELLER','BUYER&SELLER') ;
if (org_type is not null)
{
insert into venderinfor
(vi_excid,vi_excname,vi_sort,vi_usname,vi_date,vi_lastupdate_ususername,vi_lastupdate_usname,vi_lastupdatedate)
VALUES(:NEW.party_id,:NEW.party_name,'','APPS',sysdate-365*30,'APPS','APPS',sysdate-365*30)
};
END;
我简要说明下需求和逻辑:涉及到3个表:新注册信息表venderinfor,老注册信息表hz_parties,注册信息分类表pom_party_preferences。要求每次向hz_parties insert数据的时候,对数据进行检查,如果数据的party_type是'ORGANIZATION' 且preference_value in ('SELLER','BUYER&SELLER'),则向venderinfor表里也插入相应的一些数据。
party_type 和preference_value 这两个字段都在pom_party_preferences表里面。
Oracle 逐行触发器, 不能检索 被触发的表 刚才有个人胸告诉我的。那我该怎么办呢?
解决方案 »
- linux上oracle lsnrctl start 错误 ,求帮忙解决啊!!
- 写sql语句,自己出的题,把自己难倒了
- 请问哪位在linux下安装过oracle,安装的时候中文是乱码,哪里能够下载到javacn.zip,谢谢了.或者发到我的邮箱里面[email protected]
- 存储过程中查询如何拼字符串执行并将结果放入CURSOR?
- sum(t.returnamount)/sum(t.amount)) 除数为0 怎么处理
- 有关数据锁定的问题
- Oracle 8i客户端连接Oracle 9i服务器端的问题???急!!!!!
- 请教execute immediate执行动态SQL语句的问题。
- 为啥我的oracle数据库别人连不上,可别人能连上其它的oracle数据库,难道我的oracle服务器还要别的设定吗?
- oracle安装及EM使用教程
- oracle怎么获取倒数第五个字符
- sql 语句能把数据库里的数据导成txt格式吗?
不需要对hz_parties进行检索啊。
直接判断就行了
IF :NEW.party_type = 'ORGANIZTION' AND (REFERENCE_VALUE = 'SELLER' OR REFERENCE_VALUE = 'BUYER&SELLER')
向venderinfor插入信息
END IF