none
INSERT INTO com caracter esperical RRS feed

  • Pergunta

  • ola pessoal tenho esse comando

    INSERT INTO [emp].[dbo].[arquivo] (nom_user) select nome from [Ponto].[dbo].[funcionarios]

    porem não consigo importa de um banco para o outro pq no banco Ponto no campo "nome" tem caracter especial e no campo "nom_user" tbm aceita caracter especial, mas na hr do comando o sql me da esse erro

    "Msg 515, Level 16, State 2, Line 3
    Não é possível inserir o valor NULL na coluna 'des_docto', tabela 'emp002.dbo.arquivo'; a coluna não permite nulos. Falha em INSERT."

    algué ai sabe como faço esse insert trazendo os nomes do geito que esta no banco Ponto com caracter esperial e tudo ?

    grato pela atenção

    o problema é pequeno mas se torna enorme para quem não sabe como resolvelo...

    quinta-feira, 31 de julho de 2014 23:42

Respostas

Todas as Respostas

  • Deleted
    quinta-feira, 31 de julho de 2014 23:45
  • sql inteiro para vc entender

    assim funciona
    INSERT INTO [emp].[dbo].[arquivo] (des_docto, nom_user                  , dta_cadastro           , obs , faixahorario, depto          , ctps     , endereco, cidade, cep      , fone    , demissao, rg    , cpf        , pis        , nascimento, dataaltera             , email, funcao   , nacionalidade, uf   )select n_folha  , nome                      , admissao               , obs , horario_num , departamento_id, carteira , endereco, cidade, cep      , telefone, demissao, rg    , cpf        , n_pis      , nascimento, alt_data               , email, funcao_id, nacionalidade, uf from [Ponto].[dbo].[funcionarios] where nome like 'iara%'


    assim da erro assim funciona
    INSERT INTO [emp].[dbo].[arquivo] (des_docto, nom_user                  , dta_cadastro           , obs , faixahorario, depto          , ctps     , endereco, cidade, cep      , fone    , demissao, rg    , cpf        , pis        , nascimento, dataaltera             , email, funcao   , nacionalidade, uf   )select n_folha  , nome                      , admissao               , obs , horario_num , departamento_id, carteira , endereco, cidade, cep      , telefone, demissao, rg    , cpf        , n_pis      , nascimento, alt_data               , email, funcao_id, nacionalidade, uf from [Ponto].[dbo].[funcionarios]

    Msg 8152, Level 16, State 14, Line 1
    Dados de seqüência ou binários seriam truncados.

    sexta-feira, 1 de agosto de 2014 00:43
  • Deleted
    sexta-feira, 1 de agosto de 2014 01:00
  • concordo plenamente

    mas veja só exporto os nomes

    crio o insert manual e insiro no na tabela arquivo e funciona perfeitamente

    problema que trabalhamos com um sistema e queremos migrar para outro em varias entidades, e ficar criando insert manual da muito trabalho, sem contar que nunca consigo inserir as datas exportadas

    sexta-feira, 1 de agosto de 2014 01:31
  • Deleted
    sexta-feira, 1 de agosto de 2014 10:01
  • Clooer,

    Faça um simples teste, no banco de dados que você contem os dados armazenados, rode um Select para retornar por exemplo 100 ou 1000 linhas a sua tabela e observe a formatação destes dados.

    Desta forma, você poderá ter uma visualização do tipo de retorno, como também, do que você precisa ajustar na estrutura da tabela que vai receber os dados, por exemplo:

    • Tipo de Dados;
    • Obrigatoriedade de preenchimento dos dados; e
    • Tamanho dos Dados.

    Em relação ao caracteres especiais você pode especificar em cada coluna declarada no Select o Collation que deseja utilizar para tentar forma a migração de forma mais clara, limpa e transparente.


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitário | SoroCódigos] @JuniorGalvaoMVP | pedrogalvaojunior.wordpress.com

    quarta-feira, 6 de agosto de 2014 15:48
  • não posso alterar o banco preciso alterar os dados para caber 
    sexta-feira, 8 de agosto de 2014 19:58
  • A tabela [funcionários] tem algum campo maior que a tabela de [arquivo].

    Compare o tamanho de todos os campos para ver qual esta diferente.

    Esta diferença só se apresenta em registros onde: where nome NOT like 'iara%'

    Provavelmente é um campo varchar

    sexta-feira, 8 de agosto de 2014 20:21
  • Deleted
    sexta-feira, 8 de agosto de 2014 23:47
  • Clooer,

    Você poderia nos mostrar um ou dois registros com caracteres especiais que você está tentando inserir.

    Com maiores detalhes sobre o problema, mais pessoas na Comunidade poderão ajudar.


    Abraços,

    Durval Ramos
    Microsoft Partner | MTA | MCSA - SQL Server 2012 | MCSE - Data Platform
    ----------------------------------
    Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"
    segunda-feira, 11 de agosto de 2014 13:35
    Moderador
  • Clooer,

    Não falei para alterar a estrutura do banco de dados, disse para você utilizar no Select que esta obtendo os dados o comando Collate para especificar qual Collate deve ser aplicado na Coluna.


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitário | SoroCódigos] @JuniorGalvaoMVP | pedrogalvaojunior.wordpress.com

    quarta-feira, 13 de agosto de 2014 19:10