Erro na execução do IF

Dúvidas, dicas e truques de PL/SQL. Aqui também vão assuntos relacionados a pacotes, triggers, funções, Java-Stored Procedures, etc
Responder
douglasmattos
Rank: Analista Júnior
Rank: Analista Júnior
Mensagens: 75
Registrado em: Seg, 19 Mar 2012 2:28 pm

Bom dia,

Galera estou fazendo um IF para validar se um campo esta nulo ou não e me retornar uma mensagem.

Quando o campo esta nulo exibe a mensagem normalmente, porem se preencho todos os campos e clico em gravar a informação da um erro de (o gatilho WHEN-BUTTON-PRESSED levantou a exceção ORA-03114 não manipulada)

Esse é meu código:

Selecionar tudo

DECLARE
 CRACHA  VARCHAR2(100) := :BLOCO3.NUMERO_CRACHA;
 NOME    VARCHAR2(150) := :BLOCO3.NOME;
 ALERT   NUMBER;
 
BEGIN

 if :BLOCO3.NUMERO_CRACHA IS NULL THEN
 	 
 	 SET_ALERT_PROPERTY('alerta_usuario',alert_message_text,'O Cracha deve ser preenchido!');
   ALERT := SHOW_ALERT('ALERTA_usuario');

 ELSE 
 	
   Insert into dbasgu.usuarios(CD_USUARIO,NM_USUARIO,DS_OBSERVACAO,RAMAL,TP_PRIVILEGIO,NR_ID_USUARIO,CD_SENHA,CD_PAPEL,TP_STATUS,CD_PRESTADOR,USER_ID_ORA_APP,SN_ATIVO,SN_SENHA_PLOGIN,SN_ABRE_FECHA_CONTA,CPF
   ,SN_RECEBE_MSG_EXPIRA_CHAVE,SN_ALTERA_AUDITORIA_IN_LOCO,SN_CADASTRA_PACIENTE,SN_ALTERA_CADASTRO_PACIENTE,DT_NASCIMENTO,CD_MATRICULA,DS_EMAIL,CD_IDIOMA)
   values (CRACHA,NOME,null,null,'U',null,'3579>A?ADMNLKMOQVYWY\efd~?????','195','R',null,null,'S','S','S',null,'N','N','S','S',null,null,null,'pt-br');
 	
   DO_KEY('COMMIT_FORM');
 	
   SET_ALERT_PROPERTY('alerta_confirma',alert_message_text,'O cracha: '|| :BLOCO3.NUMERO_CRACHA ||' - ' ||:BLOCO3.NOME||' foi cadastrado com sucesso!!!');
   ALERT := SHOW_ALERT('ALERTA_CONFIRMA');

   go_block('bloco3');
   clear_block;

 END IF; --FIM DO IF DE VALIDAÇÃO CRACHA
 
END;
arthae
Rank: Programador Sênior
Rank: Programador Sênior
Mensagens: 52
Registrado em: Seg, 09 Mai 2011 1:13 pm
Localização: Porto Alegre - RS
GIVE ME COFFEE AND NO ONE GETS HURT!

coloca um exception when others then alerta(sqlerrm);
que ai tu sabe qual erro ta dando, outra coisa que é bacana fazer é colocar o insert dentro de um begin e end, com o mesmo exception (:
Rafael_Santos
Rank: Analista Júnior
Rank: Analista Júnior
Mensagens: 72
Registrado em: Sex, 18 Nov 2011 4:51 pm

Douglas,
o erro apresentado pelo Oracle ORA-03114 faz referência a conexão com o banco.

ORA-03114: not connected to ORACLE
Cause: A call to Oracle was attempted when no connection was established. Usually this happens because a user-written program has not logged on. It may happen if communication trouble causes a disconnection. In addition, this message could occur when ALTER SYSTEM KILL SESSION or ALTER SYSTEM DISCONNECT SESSION were issued with the IMMEDIATE qualifier because, in those cases, the client's connection to the database is terminated without waiting for the client to issue a request.
Action: Try again. If the message recurs and the program is user written, check the program.

Dê uma olhada nesse tópico http://glufke.net/oracle/viewtopic.php?t=1061

Espero ter ajudado! Abraços.
Responder
  • Informação
  • Quem está online

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