Select Insert Into não roda, dá erro

26/07/2011

0

Fiz esse select e está dando erro. Qual é o erro? O que falta nele?   select 'INSERT INTO CONHECIMENTO_CARGA VALUES('+ Convert(varchar(6),cod_indice))+','+titulo+','+ tipo+','+convert(varchar(6),num_max)+','+aplicacao+','+mascara+','+convert(varchar(6),qtd_caracter)+ ')' from indice
Pjava

Pjava

Responder

Posts

26/07/2011

Marco Pinheiro

PJava,

Informe qual o erro ocorre na execução.

Lembrando que todos os campos envolvidos nesta consulta devem ser VARCHAR ou CHAR.

Att.,

Marco.
Responder

26/07/2011

Emerson Nascimento

select 'INSERT INTO CONHECIMENTO_CARGA VALUES(' + Convert(varchar(6),cod_indice)) + ',' + titulo + ',' +
tipo + ',' + convert(varchar(6),num_max) + ',' + aplicacao + ',' + mascara + ',' + convert(varchar(6),qtd_caracter) + ')'
from indice


o trecho destacado deveria ter apenas 1 parêntesis.


select 'INSERT INTO CONHECIMENTO_CARGA VALUES(' + Convert(varchar(6),cod_indice) + ',' + titulo + ','+
tipo + ',' + convert(varchar(6),num_max) + ',' + aplicacao + ','+mascara + ',' + convert(varchar(6),qtd_caracter) + ')'
from indice

Responder

26/07/2011

Pjava

O que passa é quando ele acha campos NULL, ele não preenche os demais, ou seja, vem tudo null. Essa tabela tem 16 registros, e apenas duas tuplas que não tem nenhum, foi mostrada.
Responder

26/07/2011

Emerson Nascimento

a ação vai depender do que você quer fazer no caso de campos nulos:

1. não gera a linha
2. gera com valores default

no segundo caso você pode usar a função COALESCE(). ela retorna o primeiro valor não-nulo da lista.
assim:

select 'INSERT INTO CONHECIMENTO_CARGA VALUES(' + Convert(varchar(6),coalesce(cod_indice,0)) + ',' + coalesce(titulo,'sem titulo') + ',' +
coalesce(tipo,'sem tipo') + ',' + convert(varchar(6),coalesce(num_max,100)) + ',' + coalesce(aplicacao,'sem aplicacao') + ','+ coalesce(mascara,'sem mascara') + ',' + convert(varchar(6),coalesce(qtd_caracter,0)) + ')'
from indice
Responder

10/11/2011

Gabriel Soares

Olá!
Uma função que geralmente utilizo nestes casos é a ISNULL.
Ela busca os valores nulos na tabela e substitui pelo que você colocar como parâmetro.
Sintaxe: ISNULL(coluna_que_contém_nulos, valor_subtituto)

Ex.:
select ISNULL(cast(REGRANOVA as varchar(500)), TESTE ) from REGRASNOVAS --> Em todos os campos que tiver "NULL", vai ser trocado por "TESTE".

Espero que ajude.
Responder

10/11/2011

Gabriel Soares

No seu código, considerando que todas as colunas tenham pelo menos um registro null.
Substituindo os mesmo pelo testo "NULL", ficaria assim.

select insert into conhecimento_carga values( + isnull(convert(varchar(6),cod_indice), null + , +
isnull(titulo,null) + , + isnull(tipo,null) + , +
isnull(convert(varchar(6),num_max),null)
+ , + isnull(aplicacao,null) + , + isnull(mascara,null) + , +
isnull(convert(varchar(6),qtd_caracter),null) + ) from indice

Abraço!
Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar