Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Luis Eduardo

Trigger > Cursor

Recommended Posts

Reformulando;

 

Meu codigo é o seguinte;

CREATE OR REPLACETRIGGER ATUALIZA_STATUS_CARTOES BEFORE INSERT OR UPDATE ON IDENTIFICADORES FOR EACH ROW 		DECLARE	V_status IDENTIFICADORES.STATUS%TYPE;	V_codigo IDENTIFICADORES.CODIGO%TYPE;	V_cod_usuario IDENTIFICADORES.COD_USUARIO%TYPE;	V_cod_grupo_acesso IDENTIFICADORES.COD_GRUPO_ACESSO%TYPE;	V_cod_identificador IDENTIFICADORES.COD_IDENTIFICADOR%TYPE;	V_cod_agrupador AGRUPADORES.COD_AGRUPADOR%TYPE;			CURSOR	Cursor_identificadores(V2_codigo IDENTIFICADORES.CODIGO%TYPE)IS		SELECT	cod_identificador, 				cod_grupo_acesso,				cod_usuario 		FROM 	identificadores 		WHERE	codigo			=	V2_codigo 		and	 status				  =	   0 		and	cod_identificador 	<>	:NEW.cod_identificador;		CURSOR agrupadores_cursor(V2_cod_grupo_acesso IDENTIFICADORES.CODIGO%TYPE) IS		SELECT cod_agrupador 		FROM agrupadores 		WHERE cod_agrupador IN (		  SELECT ga.cod_agrupador 		  FROM grupos_acesso_permissoes ga,			   grupos_acesso g 		  WHERE ga.cod_grupo_acesso = g.cod_grupo_acesso 		  AND g.cod_grupo_acesso	= V2_cod_grupo_acesso 		  GROUP BY cod_agrupador);		BEGIN		  V_status := :NEW.status;		  V_codigo := :NEW.codigo;		  IF (V_status = 0) THEN			  OPEN Cursor_identificadores(V_codigo);			  LOOP				  FETCH Cursor_identificadores INTO V_cod_identificador, V_cod_grupo_acesso, V_cod_usuario;  				  UPDATE identificadores SET STATUS = 1 where cod_identificador = V_cod_identificador;				  OPEN agrupadores_cursor(V_cod_grupo_acesso);				  LOOP					  FETCH agrupadores_cursor INTO V_cod_agrupador;					  INSERT INTO identificadores_agrupadores values (V_cod_identificador,V_cod_agrupador,V_cod_usuario,2,SYSDATE,0);					  EXIT WHEN agrupadores_cursor%NOTFOUND;		  				  END LOOP;				  				  CLOSE agrupadores_cursor;									  EXIT WHEN Cursor_identificadores%NOTFOUND;   			  END LOOP;			  CLOSE Cursor_identificadores;		  END IF;		  COMMIT;		END;

O erro que acontece;

 

Error(55,35): PL/SQL: ORA-00947: não há valores suficientes

(referente ao OPEN agrupadores_cursor(V_cod_grupo_acesso);)

 

O que acontece.

Pq nao funciona, como faço funcionar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.