Redundâncias

Este forum é dedicado a códigos errados que se encontram por aí, ou seja, coisas que não se deve fazer de jeito nenhum! Não coloque neste forum dúvidas! (apenas situações bizarras do nosso dia a dia :-)
Responder
Avatar do usuário
Porva
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 342
Registrado em: Seg, 29 Jan 2007 7:36 am
Localização: São Paulo/SP
Rafael S. Nunes
São Paulo/SP

Pra quê testar se o foco do mouse está no item B07.CARG_CD_CARGO se é o próprio item que dispara esta trigger (WHEN-VALIDATE-ITEM) ?!?!?

Selecionar tudo

IF :SYSTEM.CURSOR_FIELD = 'B07.CARG_CD_CARGO' THEN

	:b07.carg_cd_cargo := LPAD( :b07.carg_cd_cargo, 4, '0' );

	IF :b07.carg_cd_cargo IS NOT NULL THEN

		DECLARE

			nAux  INTEGER;

		BEGIN
			-- Aqui o cidadão faz um Select Count 
			-- e repetirá o mesmo Select mais abaixo pra trazer os campos (?)
			-- porquê não fez um Select somente?!

			SELECT COUNT(*)
			  INTO nAux
			  FROM rhcarvaga
			 WHERE rhcarvaga.orgs_cd = :b07.orgs_cd
			   AND rhcarvaga.carg_cd_cargo = :b07.carg_cd_cargo;

		  IF nAux = 0 THEN

		  	MSG_AGENERICO('Não existem vagas disponíveis para órgão/setor e 

cargo selecionados.');
		  	:b07.carg_cd_cargo := NULL;
		  	:b07.tc_carg_ds_cargo := NULL;
		  	RETURN;

		  END IF;

		END;

	  SELECT rhcargo.carg_ds_cargo
	    INTO :b07.tc_carg_ds_cargo
	    FROM rhcargo
	   WHERE rhcargo.carg_cd_cargo = :b07.carg_cd_cargo;

	  :b07.vaga_cd := NULL;
	  :b07.tc_vaga_ds_essencia := NULL;

		BEGIN

			-- Aqui ele faz o mesmo Select, agora pra trazer os campos (dãããrr..)!

			SELECT rhcarvaga.vaga_cd,
			       rhcarvaga.vaga_ds_essencia
			  INTO :b07.vaga_cd,
			       :b07.tc_vaga_ds_essencia
			  FROM rhcarvaga
			 WHERE rhcarvaga.orgs_cd = :b07.orgs_cd
			   AND rhcarvaga.carg_cd_cargo = :b07.carg_cd_cargo;

		EXCEPTION

			WHEN NO_DATA_FOUND OR TOO_MANY_ROWS THEN

				NULL;

		END;

	ELSE

		:b07.tc_carg_ds_cargo := NULL;
	  :b07.vaga_cd := NULL;
	  :b07.tc_vaga_ds_essencia := NULL;

	END IF;

END IF;
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 9 visitantes