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;
Redundâncias
- Porva
- 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
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) ?!?!?
-
- Informação
-
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 13 visitantes