Итак, я просто переписал ваш код, чтобы он соответствовал синтаксису Oracle, но я сомневаюсь, что он на самом деле сработает для вас - я думаю, что это может вызвать ошибку «таблица мутируется».Удачи.
CREATE OR REPLACE TRIGGER trigger_entity_tag_sync
AFTER INSERT ON podium_core.pd_entity_tag
FOR EACH ROW
BEGIN
insert into podium_core.pd_entity_tag(entity_nid,tag,version,modifiedby, createdby)
select distinct FOO.entity_nid, :NEW.tag,0,'trigger','trigger'
from
(select entity_nid
from podium_core.pd_field
where nid in (
select child_field_nid
from podium_core.pd_field_pc_rel
where parent_field_nid in
(select max(f.nid) from podium_core.pd_field f join podium_core.pd_entity e on e.nid= f.entity_nid
where entity_nid=:NEW.entity_nid and entity_type='EXTERNAL')
)
)FOO
where :NEW.createdby <> 'trigger';
delete from podium_core.pd_entity_tag t1
where exists (select 1 from podium_core.pd_entity_tag t2
WHERE t1.nid < t2.nid
AND t1.tag = t2.tag
AND t1.entity_nid = t2.entity_nid);
END;
/