Boa gente,
Gostaria primeiramente de agradecer as ajudas até agora.
Estou com o seguinte problema:
Ao executar a trigger when-button-pressed abaixo:
BEGIN
IF :BLC01.SELECAO_INFORMACAO = 1 THEN
IF :BLC01.SELECAO_FORMA = 1 THEN
CMEK4600.CONTROLE(04,null,'BLC01.DT_INICIAL','BLC01.DT_FINAL');
END IF;
END IF;
END;
aparece o seguinte erro: frm-40735: when-button-pressed trigger raised unhandled exception ora-01841.
Se alguém puder me ajudar urgente.
Grato
frm-40735 ao executar package na trigger when-button-pressed
-
- Moderador
- Mensagens: 367
- Registrado em: Ter, 25 Mar 2008 3:41 pm
- Localização: Salvador - BA
Rodrigo Valentim
Analista de Sistemas
Oracle Developer
Campanha: Faça uma pesquisa antes de perguntar!!!
Analista de Sistemas
Oracle Developer
Campanha: Faça uma pesquisa antes de perguntar!!!
Jonatas, ao pesquisar no google, encontrei o seguinte.
RA-01841: (full) year must be between -4713 and +9999, and not be 0
Cause: Illegal year entered
Action: Input year in the specified range
ou seja, verifique você esta passando a data como sendo strings, ou seja, 'BLC01.DT_INICIAL' E 'BLC01.DT_FINAL'
Faca referencia igual ao que você fez no IF, removendo as '' e colocando : no inicio do campo.
Ex:
Logo, tomando a liberdade, porque não fazer logo assim?
RA-01841: (full) year must be between -4713 and +9999, and not be 0
Cause: Illegal year entered
Action: Input year in the specified range
ou seja, verifique você esta passando a data como sendo strings, ou seja, 'BLC01.DT_INICIAL' E 'BLC01.DT_FINAL'
Faca referencia igual ao que você fez no IF, removendo as '' e colocando : no inicio do campo.
Ex:
BEGIN
IF :BLC01.SELECAO_INFORMACAO = 1 THEN
IF :BLC01.SELECAO_FORMA = 1 THEN
CMEK4600.CONTROLE(04,null,:BLC01.DT_INICIAL,:BLC01.DT_FINAL);
END IF;
END IF;
END;
BEGIN
IF :BLC01.SELECAO_INFORMACAO = 1 AND :BLC01.SELECAO_FORMA = 1 THEN
CMEK4600.CONTROLE(04,null,:BLC01.DT_INICIAL,:BLC01.DT_FINAL);
END IF;
END;
-
- Rank: Analista Júnior
- Mensagens: 77
- Registrado em: Qua, 17 Jun 2009 3:18 pm
- Localização: Blumenau - SC
ok Rodrigo,
Também achei esta solução...
gerei o código daquela maneira porque ele todo é assim:
IF :BLC01.SELECAO_INFORMACAO = 1 THEN
IF :BLC01.SELECAO_FORMA = 1 THEN
CMEK4600.CONTROLE(04,null,:BLC01.DT_INICIAL,:BLC01.DT_FINAL);
ELSIF :BLC01.SELECAO_FORMA = 2 THEN
CMEK4600.CONTROLE(03,:BLC01.ID_RE,NULL,NULL);
END IF;
ELSIF :BLC01.SELECAO_INFORMACAO = 2 THEN
IF :BLC01.SELECAO_FORMA = 1 THEN
CMEK4600.CONTROLE(06,null,:BLC01.DT_INICIAL,:BLC01.DT_FINAL);
ELSIF :BLC01.SELECAO_FORMA = 2 THEN
CMEK4600.CONTROLE(05,:BLC01.ID_RE,NULL,NULL);
END IF;
ELSIF :BLC01.SELECAO_INFORMACAO = 3 THEN
IF :BLC01.SELECAO_FORMA = 1 THEN
CMEK4600.CONTROLE(08,null,:BLC01.DT_INICIAL,:BLC01.DT_FINAL);
ELSIF :BLC01.SELECAO_FORMA = 2 THEN
CMEK4600.CONTROLE(07,:BLC01.ID_RE,NULL,NULL);
END IF;
END IF;
Obrigado amigo..
Também achei esta solução...
gerei o código daquela maneira porque ele todo é assim:
IF :BLC01.SELECAO_INFORMACAO = 1 THEN
IF :BLC01.SELECAO_FORMA = 1 THEN
CMEK4600.CONTROLE(04,null,:BLC01.DT_INICIAL,:BLC01.DT_FINAL);
ELSIF :BLC01.SELECAO_FORMA = 2 THEN
CMEK4600.CONTROLE(03,:BLC01.ID_RE,NULL,NULL);
END IF;
ELSIF :BLC01.SELECAO_INFORMACAO = 2 THEN
IF :BLC01.SELECAO_FORMA = 1 THEN
CMEK4600.CONTROLE(06,null,:BLC01.DT_INICIAL,:BLC01.DT_FINAL);
ELSIF :BLC01.SELECAO_FORMA = 2 THEN
CMEK4600.CONTROLE(05,:BLC01.ID_RE,NULL,NULL);
END IF;
ELSIF :BLC01.SELECAO_INFORMACAO = 3 THEN
IF :BLC01.SELECAO_FORMA = 1 THEN
CMEK4600.CONTROLE(08,null,:BLC01.DT_INICIAL,:BLC01.DT_FINAL);
ELSIF :BLC01.SELECAO_FORMA = 2 THEN
CMEK4600.CONTROLE(07,:BLC01.ID_RE,NULL,NULL);
END IF;
END IF;
Obrigado amigo..
-
- Informação
-
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 14 visitantes