Error de mutating table
Publicado por Fernando (1 intervención) el 11/09/2008 22:42:48
Tengo un error al actualizar una tabla con el triger.
la actualizacion es la siguiente:
update BMA_BIOMARKER_GENES set bbg_biomarker_id = 4 where bbg_id = 999999999;
y el triger es el siguiente que llama a un procedimiento.
CREATE OR REPLACE TRIGGER ALR_BMKM_NEW_RELTAR
BEFORE INSERT OR UPDATE OF "BBG_BIOMARKER_ID"
ON "BMA_BIOMARKER_GENES" FOR EACH ROW
DECLARE
v_count pls_integer;
BEGIN
select count(ttg.ttg_target_id)
into v_count
from BMA_BIOMARKER_GENES BBG, TAR_TARGET_GENES ttg
where BBG.BBG_BIOMARKER_ID=:new.BBG_BIOMARKER_ID
and ttg.ttg_gene_id = bbg.BBG_GENE_ID;
if v_count > 0 then
insert_alr_scanned_ids(change_tracking_item_id => alerts_const_pkg.ct_newBMKMRelTAR,
subsystem_id => :new.BBG_BIOMARKER_ID,
subsystem => 'BMKM');
end if;
END ALR_BMKM_NEW_RELTAR;
create or replace procedure INSERT_ALR_SCANNED_IDS (
change_tracking_item_id in pls_integer,
subsystem_id in varchar2,
subsystem in varchar2
)
AS
BEGIN
INSERT INTO alr_scanned_ids (
asi_id,
asi_change_tracking_item_id,
asi_subsystem_id,
asi_subsystem,
asi_modif_date)
VALUES (
asi_id_seq.nextval,
change_tracking_item_id,
subsystem_id,
subsystem,
SYSDATE
);
END INSERT_ALR_SCANNED_IDS;
Favor si me pueden dar una ayuda con esto.
Gracias
la actualizacion es la siguiente:
update BMA_BIOMARKER_GENES set bbg_biomarker_id = 4 where bbg_id = 999999999;
y el triger es el siguiente que llama a un procedimiento.
CREATE OR REPLACE TRIGGER ALR_BMKM_NEW_RELTAR
BEFORE INSERT OR UPDATE OF "BBG_BIOMARKER_ID"
ON "BMA_BIOMARKER_GENES" FOR EACH ROW
DECLARE
v_count pls_integer;
BEGIN
select count(ttg.ttg_target_id)
into v_count
from BMA_BIOMARKER_GENES BBG, TAR_TARGET_GENES ttg
where BBG.BBG_BIOMARKER_ID=:new.BBG_BIOMARKER_ID
and ttg.ttg_gene_id = bbg.BBG_GENE_ID;
if v_count > 0 then
insert_alr_scanned_ids(change_tracking_item_id => alerts_const_pkg.ct_newBMKMRelTAR,
subsystem_id => :new.BBG_BIOMARKER_ID,
subsystem => 'BMKM');
end if;
END ALR_BMKM_NEW_RELTAR;
create or replace procedure INSERT_ALR_SCANNED_IDS (
change_tracking_item_id in pls_integer,
subsystem_id in varchar2,
subsystem in varchar2
)
AS
BEGIN
INSERT INTO alr_scanned_ids (
asi_id,
asi_change_tracking_item_id,
asi_subsystem_id,
asi_subsystem,
asi_modif_date)
VALUES (
asi_id_seq.nextval,
change_tracking_item_id,
subsystem_id,
subsystem,
SYSDATE
);
END INSERT_ALR_SCANNED_IDS;
Favor si me pueden dar una ayuda con esto.
Gracias
Valora esta pregunta


0