1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Melhorar a mesangem de Violação de UK

Boa tarde... Galera estou com uma duvida, sou inciante em programação e estou fazendo o seginte.

criei uma tabela Pais.

create table TBLPAIS
(
  codpais    NUMBER not null,
  nome       VARCHAR2(100),
  sigla      VARCHAR2(10),
  observacao VARCHAR2(4000)
)

colocando como UK nome e Sigla

alter table TBLPAIS
  add constraint UK_TBLPAIS unique (NOME, SIGLA)

e quando vou inserir está acontecendo a violão de UK, até ai tudo bem, mas gostaria de saber como posso melhorar essa mensagem, pois na hora que estou inserindo está aparecendo a seguinte mensagem:

ORA-00001: restrição exclusiva (BANHOTOSA.UK_TBLPAIS) violada

mas gostaria de tratar esse mensagem na trigger ou sei lá, ouvi dizer sobre uma Trigger ST que faz um select dentro dela mesmo, não sei ao certo...

também pensei em deixa só na trigger a validação, mas sendo assim qualquer um podia comentar essa validação e inserir normalmente... é possivel fazer essa validação na trigger?

  • Como você está fazendo a inserção? Está trabalhando diretamente no Oracle? Se sim, você poderia criar uma procedure para fazer essa inserção, e essa trigger tratar a mensagem de erro (com exception).

    TerraSkilll   07 de dez de 2015
  • Estou tratando os erros assim if (trim(:new.nome) is null) then raise_application_error( -20001,'O campo NOME deve conter um valor.'); end if;

    mas nesse caso é nulo, quero tipo assim fazer um select na própria tabela e conferir se já existe o registo de dar uma mensagem de erro... Ouvi dizer em algo como Trigger ST para pode fazer a select dentro da própria tabela... mas não consigo achar nada em relação...

    mas o que conseguir fazer, por mim não precisa ser uma trigger ST

    Obrigado pela ajuda...

    rafaelshock   07 de dez de 2015
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

1 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags sql oracle banco-de-dados ou faça a sua própria pergunta.