Asignacion a variable en un Trigger Oracle

patxicomono
28 de Julio del 2005
Hola,
En primer lugar, buenas tardes a todos.

Tengo un problemilla, me es necesario asignar el resultado de una consulta a una variable de dentro de un trigger pero al picar el codigo
me da error. El problema es que no puedo utilizar el into del select ( sino ya ves tu q facil!! ) y el codigo q tengo es algo como esto:


CREATE OR REPLACE TRIGGER cavash_del
AFTER DELETE ON cavash
REFERENCING OLD AS prv
FOR EACH ROW
DECLARE
x NUMBER;
BEGIN

x:= SELECT COUNT(*) <---- Esta asignacion se puede realizar de otra manera¿?
FROM cavalesh
WHERE rowenl = :prv.apteid;

IF (x > 0) THEN
sdm_raise_msg(0, 'cavalesh_del: No se permite eliminar este aval.');
END IF;

END cavalesh_del;
.
run

Rodolfo Reyes
28 de Julio del 2005
Si por alguna extrana razon no quieres o puedes utilizar un select ... into variable from ...

Ya que tienes toda la razon es lo mas logico y sencillo.
Puedes crear un cursor


CREATE OR REPLACE TRIGGER cavash_del
AFTER DELETE ON cavash
REFERENCING OLD AS prv
FOR EACH ROW
DECLARE
x NUMBER;

cursor tmp is
select count(*) contador
from ...
where ...
BEGIN

For CR in tmp Loop

IF (CR.contador > 0) THEN
sdm_raise_msg(0, 'cavalesh_del: No se permite eliminar este aval.');
END IF;
end loop;

END cavalesh_del;


jc3000
28 de Julio del 2005
Venga ya ¡¡¡¡¡

SELECT COUNT(*)
into x
FROM cavalesh
WHERE rowenl = :prv.apteid;