coluna que da erro no insert

Dúvidas, dicas e truques de SQL, Select, Update, Delete, cláusulas, operações com joins, Funções em SQLs, etc
michael correia
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 4
Registrado em: Seg, 25 Out 2010 4:41 pm
Localização: sorocaba-sp

boa tarde galera!

Gostaria de saber se alguém de vocês conhecem como descobre qual coluna q esta dando o erro na hora de inserir ????
:roll:
burga
Rank: DBA Pleno
Rank: DBA Pleno
Mensagens: 232
Registrado em: Qui, 26 Nov 2009 1:05 pm
Localização: SP

Se você postar o comando de insert que está sendo executado, a descrição da tabela e a mensagem de erro fica mais fácil de descobrir.

Geralmente dá pra descobrir pela mensagem de erro e analisando o comando executado.
michael correia
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 4
Registrado em: Seg, 25 Out 2010 4:41 pm
Localização: sorocaba-sp

posso não ter me expressado corretamente.
vamos la :
tabela :

Selecionar tudo

 tabela( 
 campoA   varchar2(50),
 campoB   varchar2(50),
 campoC   number,
 campoD   number,
 campoE   number,
 campoF   varchar2(50))
insert:

Selecionar tudo

 INSERT INTO tabela
            (campoA,
             campoB,
             campoC,
             campoD,
             campoE,
             campoF
             )VALUES
             (
             cursor.campoA,
             cursor.campoB,
             cursor.campoC,
             cursor.campoD,
             cursor.campoE,
             cursor.campoF);
o erro que aparece é :

Selecionar tudo

ORA-01722: invalid number
eu sei que é alguns dos campos que está passando um valor não-numérico para a tabela, porém o que eu quero realmente é uma maneira de identificar o campo exato do erro, mesmo que seja outro erro, pois necessito salvar uma mensagem para o usuário informando qual campo esta com erro. Então tenho a necessidade de saber o campo exato.
Obrigado !
:roll:
victorhugomuniz
Moderador
Moderador
Mensagens: 1396
Registrado em: Sex, 01 Fev 2008 2:06 pm
Localização: Rio de Janeiro - RJ
Contato:
:D

como você declara os tipos do cursor?
michael correia
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 4
Registrado em: Seg, 25 Out 2010 4:41 pm
Localização: sorocaba-sp

meu cursor é declaro desta maneira :

Selecionar tudo

CURSOR cursor
      IS
select campoA               
        ,campoB  
        ,campoC  
        ,campoD  
        ,campoE  
        ,campoF 
from tabela_stg;
faz um select em uma tabela "stage", mas o problema é extrair em caso de erro o campo exato que deu erro.
gfkauer
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 389
Registrado em: Ter, 27 Jul 2010 1:34 pm
Localização: Sapiranga - RS
Contato:
Quem falou que programar era fácil??

Quanto mais dificil for a implementação mais valorizado seu trabalho será!

Acessem: www.gfkauer.com.br

Não tenho certeza, mas até onde conheço de sql, sei que o erro que retorno é um

Selecionar tudo

ORA-01722: invalid number[list] mas não sei se tem alguma forma "automática" de buscar qual a coluna que esta disparando o erro.

Uma forma de fazer isto seria construindo uma trigger que fizesse a validação campo a campo antes do insert e desta trigger vir a mensagem de erro para o usuário.[/list]
diegolenhardt
Moderador
Moderador
Mensagens: 1177
Registrado em: Qui, 15 Out 2009 10:28 am
Localização: Recife

tenta ir comentando as colunas no insert ate descubrir em qual delas é,

o erro é que ta tentando inserir uma letra onde deveria ser numero.

existem funcoes que vao te ajudar a localizar qual a linha que está com essa anomalia.
gfkauer
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 389
Registrado em: Ter, 27 Jul 2010 1:34 pm
Localização: Sapiranga - RS
Contato:
Quem falou que programar era fácil??

Quanto mais dificil for a implementação mais valorizado seu trabalho será!

Acessem: www.gfkauer.com.br

diegolenhardt,
Pelo que eu havia entendido o objetivo do michael correia é deixar que o erro ocorra, e então ter a capaciadade de retornar para o usuário uma mensagem clara o suficiente para que o próprio altere o valor informado errado. Por isso a busca pela coluna com o erro.

Pensando desta forma eu só veria uma validação coluna a coluna validando o tamanho e o tipo...

Caso eu estiver errado por favor me corrijam

Abs
michael correia
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 4
Registrado em: Seg, 25 Out 2010 4:41 pm
Localização: sorocaba-sp

gfkauer isto mesmo .... o erro ira acontecer de qualquer jeito, só gostaria de identificar o campo para o usuario acertar, mas pelo que vejo tera que ter uma validacao campo a campo...
Obrigado a todos !
:roll:
Responder
  • Informação
  • Quem está online

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