Pessoal como faço para chamar uma Function por uma Trigger
exemplo tenho uma function que me retorna um erro caso uma validação não exista.
e preciso que esta minha trigger receba a Function como faço?
VLw pessoal![/code]
Pessoal como faço para chamar uma Function por uma Trigger?
-
- Rank: Programador Júnior
- Mensagens: 27
- Registrado em: Qui, 03 Jan 2008 9:24 am
- Localização: São Paulo
-
- Moderador
- Mensagens: 2016
- Registrado em: Qua, 12 Jan 2005 3:25 pm
- Localização: Araraquara - SP
Abraço,
Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP
Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP
Brother,
É uma function de banco?
Caso positivo, chame-a normalmente dentro de tua trigger...
Caso não seja isso, coloque teu código aqui pra gente, beleza?
É uma function de banco?
Caso positivo, chame-a normalmente dentro de tua trigger...
V_VAR NUMBER(10); -- Se tua fun retorna number
BEGIN
V_VAR := FUN_NOME_FUN(PARAMETRO=>'X');
END;
-
- Rank: Programador Júnior
- Mensagens: 27
- Registrado em: Qui, 03 Jan 2008 9:24 am
- Localização: São Paulo
Não é uma trigger de banco não. É uma trigger de validação de uma regra do meu forms.
Declare
v_valida_cartao varchar2(1);
v_verifica varchar2(1);
v_nivel_servico number(5);
Begin
FUNC_VALIDA_FIDELIDADE( p_valida_cartao
, p_verifica
, p_nivel_servico
, p_msg );
IF A = 1 then
Alerta1('Não existe Cartão Fidelidade com este numero.Favor Usar a Lista!') ;
:cartao_fidelidade_polcom.fk_cfid_ad_cartao := null;
:cartao_fidelidade_polcom.cd_usu_ult_alz := null;
:cartao_fidelidade_polcom.ts_ult_alz := null;
raise form_trigger_failure;
END IF;
IF A = 2 THEN
Alerta1('Cartão já inserido para Nível de Serviço '||v_nivel_servico);
:cartao_fidelidade_polcom.fk_cfid_ad_cartao := null;
:cartao_fidelidade_polcom.cd_usu_ult_alz := null;
:cartao_fidelidade_polcom.ts_ult_alz := null;
raise form_trigger_failure;
END IF;
-
- Moderador
- Mensagens: 2016
- Registrado em: Qua, 12 Jan 2005 3:25 pm
- Localização: Araraquara - SP
Abraço,
Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP
Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP
Brother,
Você deve retornar este valor da função, em uma variável.
Esta função retorna que tipo de dados?
Supondo que retorna um varchar2...
qualquer coisa manda ai.
Você deve retornar este valor da função, em uma variável.
Esta função retorna que tipo de dados?
Supondo que retorna um varchar2...
...
Declare
v_valida_cartao varchar2(1);
v_verifica varchar2(1);
v_nivel_servico number(5);
v_ret_funcao_fid varchar2(100);
Begin
v_ret_funcao_fid := FUNC_VALIDA_FIDELIDADE( p_valida_cartao
, p_verifica
, p_nivel_servico
, p_msg );
-- .. toma as decisões ...
IF V_RET_FUNCAO_FID = 'NNNNN'
THEN
...
-
- Rank: Programador Júnior
- Mensagens: 27
- Registrado em: Qui, 03 Jan 2008 9:24 am
- Localização: São Paulo
Obrigado pela ajuda mais encontrei outra maneira de fazer utilizando o codigo que você me passou.
VOu coloca-lo aqui duvidas postem
Vlw pessoal estou abrindo outro topico se poderem me ajudar agradeço
VOu coloca-lo aqui duvidas postem
Declare
v_teste number(2); // Minha Function retorna um erro em valor numérico
v_msg varchar2(255);// Esta variável está vinculada a Function, ela exibe a mensagem de erro de acordo com o erro na function.
Begin
v_teste := FUNC_VALIDA_FIDELIDADE( :CARTAO_TESTE.FK_CFID_AD_CARTAO,
:NIVEL_TESTE.FK_POLCOM_CD_POLCOM,
:NIVEL_TESTE.FK_AD_NIVSERV_POLCOM,
v_msg );// Aqui estão os parâmetros que a Trigger necessita para fazer o teste.
if v_erro > 0 then
alerta1(v_msg) ;
:cartao_fidelidade_polcom.fk_cfid_ad_cartao := null;
:cartao_fidelidade_polcom.cd_usu_ult_alz := null;
:cartao_fidelidade_polcom.ts_ult_alz := null;
raise form_trigger_failure;
End if;
--
End;
-
- Informação
-
Quem está online
Usuários navegando neste fórum: Majestic-12 [Bot] e 16 visitantes