Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Oracle »

alguien entiende de cursores en triggers??

Estas en el tema de alguien entiende de cursores en triggers?? en el foro de Oracle en Foros del Web. Se puede hacer algo del tipo: create triger......... DECLARE CURSOR c; BEGIN IF (condicion) THEN c:="mi consulta" ELSE c:="otra consulta" END IF; .... .... .... ...
  #1 (permalink)  
Antiguo 18/05/2011, 08:31
 
Fecha de Ingreso: abril-2011
Ubicación: Motril
Mensajes: 49
Antigüedad: 13 años
Puntos: 1
alguien entiende de cursores en triggers??

Se puede hacer algo del tipo:

create triger.........
DECLARE
CURSOR c;
BEGIN
IF (condicion) THEN
c:="mi consulta"
ELSE
c:="otra consulta"
END IF;

....
....
....

Si es asi, ¿como se hace?
  #2 (permalink)  
Antiguo 18/05/2011, 13:02
 
Fecha de Ingreso: mayo-2011
Mensajes: 9
Antigüedad: 12 años, 11 meses
Puntos: 1
Respuesta: alguien entiende de cursores en triggers??

Por ejemplo, si utilizas el ref cursor predefinido (para abreviar la explicación):

DECLARE
...
refcur sys_refcursor;
...
BEGIN

IF A THEN
OPEN refcur FOR SELECT empno, ename FROM emp;
.......
ELSE
OPEN refcur FOR
SELECT empno, ename
FROM emp WHERE deptno = 30;
.........
END IF;
.....
CLOSE refcur;
.......
END;

Espero que te sirva de ayuda.

Saludos
  #3 (permalink)  
Antiguo 18/05/2011, 15:59
 
Fecha de Ingreso: abril-2011
Ubicación: Motril
Mensajes: 49
Antigüedad: 13 años
Puntos: 1
Respuesta: alguien entiende de cursores en triggers??

Muchas gracias!

No me funciono lo que me has dado, pero buscando por sys cursor encontre la solcion.
Hay que declararlo de la siguiente manera:

DECLARE
type r_cursor is REF CURSOR;
refcur r_cursor;
id tabla.codigo%TYPE;

y luego seguir

BEGIN
OPEN refcur FOR SELECT ..... -- consulta
LOOP
FETCH refcur INTO cod;
EXIT WHEN refcur%NOTFOUND;

-- ... codigo

END LOOP;
CLOSE refcur;
  #4 (permalink)  
Antiguo 18/05/2011, 16:01
 
Fecha de Ingreso: abril-2011
Ubicación: Motril
Mensajes: 49
Antigüedad: 13 años
Puntos: 1
Respuesta: alguien entiende de cursores en triggers??

P.D: la web donde encontre la explicacion (Esta en inglés, pero secillo de entender):

[URL="http://www.devshed.com/c/a/Oracle/Working-with-REF-CURSOR-in-PL-SQL/"]http://www.devshed.com/c/a/Oracle/Working-with-REF-CURSOR-in-PL-SQL/[/URL]
TEMA SOLUCIONADO.

Etiquetas: cursor
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:09.