none
Erro ao tentar exportar via linked server (OPENROWQUERY) dados do tipo VARCHAR(MAX) ou TEXT RRS feed

  • Pergunta

  • Bom dia!

    Caros,

    Estou tentando exportar dados utilizando um linked server com o banco PostgreSQL. Para tanto, utilizo OPENROWQUERY. Porém, ao tentar exportar dados do tipo VARCHAR(MAX), NVARCHAR(MAX) ou TEXT ele retorna a seguinte mensagem:

    OLE DB provider "MSDASQL" for linked server "POSTGRES" returned message "Multiple-step OLE DB operation generated errors. Check each OLE DB status value, if available. No work was done.".
    Msg 7344, Level 16, State 1, Line 1
    The OLE DB provider "MSDASQL" for linked server "POSTGRES" could not INSERT INTO table "[MSDASQL]" because of column "noticia". Could not convert the data value due to reasons other than sign mismatch or overflow.
    Location: qxcntxt.cpp:1052
    Expression: cref == 0
    SPID: 79
    Process ID: 1200

    Esse erro ocorre ao executar qualquer das duas querys abaixo:

    insert into OPENQUERY(POSTGRES,'select noticia from appnoticias')select cast(noticias as TEXT) from #notpost
    
    insert into OPENQUERY(POSTGRES,'select noticia from appnoticias')select cast(noticias as VARCHAR(MAX)) from #notpost	
    Ao procurar na web pelo erro que já informei anteriormente, encontrei um hotfix para Windows Server 2003 que resolveria o problema: https://support.microsoft.com/en-us/kb/887474

    Porém, o meu sistema operacional é o Windows Server 2008 R2 Datacenter e minha versão do SQL Server é a 2008 R2 (RTM).

    Procurei alguma solução para essa versão do windows, porém só o que encontrei foi discussões pedindo para enviar a Microsoft; porém, na discussão não informa se houve retorno e/ou hotfix para resolver tal situação.

    Tenho certa urgência na resolução desse problema, pois paliativamente, estou cortando os dados com VARCHAR(8000) para enviar ao PostgreSQL

    Agradeço desde já a contribuição.


    Fredy Esmeraldo
    Microsoft MCP, MCTS, MCITP Database Administrator 2008
    Visite o meu blog: http://fredyesmeraldo.wordpress.com
    Me siga no twitter: @fredyesmeraldo
    LinkedIN: Fredy Esmeraldo
    **Ajude a melhorar o sistema de busca do fórum.Marque a(s) resposta(s) que foram úteis**
    **Se esta resposta solucionou a questão, então, por favor, marque-a como resposta.**

    quinta-feira, 9 de julho de 2015 12:58

Respostas

Todas as Respostas

  • Deleted
    quinta-feira, 9 de julho de 2015 20:01
  • Opa, José Diz!

    Em primeiro lugar, muito obrigado pela sua atenção.

    Respondendo suas perguntas:

    • Em torno de 90% da tabela #notpost tem a coluna notícias acima de 8000 caracteres. A que tem mais caracteres tem pouco mais de 22000.
    • Devido ao tamanho da tabela, em outra consulta já tentei mandar em blocos até menores de 10 em 10 e até de 1 em 1 para testar.
    • Verifiquei hotfixes e services packs e aparentemente nada foi resolvido. Não há nenhum motivo para o SQL ainda estar na versão RTM. Faz pouco tempo que assumi o cargo e ainda estou realizando as ações nos bancos de dados.

    Porém, se você ler o link que postei na pergunta original, aparentemente o SQL Server utiliza um provider do Windows e ele é quem retorna o erro. Entendeu? Estou na dúvida se esse erro seria do SQL Server ou no Windows.  

    O fato é que ele ocorre no SQL Server, por isso abri a pergunta nesse fórum e não no Windows. :(


    Fredy Esmeraldo
    Microsoft MCP, MCTS, MCITP Database Administrator 2008
    Visite o meu blog: http://fredyesmeraldo.wordpress.com
    Me siga no twitter: @fredyesmeraldo
    LinkedIN: Fredy Esmeraldo
    **Ajude a melhorar o sistema de busca do fórum.Marque a(s) resposta(s) que foram úteis**
    **Se esta resposta solucionou a questão, então, por favor, marque-a como resposta.**

    quinta-feira, 9 de julho de 2015 20:44
  • Deleted
    sexta-feira, 10 de julho de 2015 15:21
  • Oi José Diz!

    Mais uma vez, muito obrigado.

    Respondendo suas perguntas:

    • como estão declaradas a coluna noticia na tabela appnoticias (sgbd PostgreSQL) e a coluna noticias na tabela #notpost?

    ele está nessa tabela como varchar(max)

    • qual a versão do PostgreSQL?

    "PostgreSQL 9.4.1 on x86_64-unknown-linux-gnu, compiled by gcc (GCC) 4.6.3 20120306 (Red Hat 4.6.3-2), 64-bit"

    • os dois sgbd estão instalados no mesmo servidor?

    Não. São dois servidores distintos e em localizações diferentes.

    • no servidor com o SQL Server está utilizando qual driver ODBC?

    PostgreSQL ANSI(x64)

    • esta ligação já existia ou é algo criado recentemente?

    Essa ligação foi criada recente justamente para essa tarefa de migração de dados. Todas as outras tabelas de diferentes bancos (SQL Server e MySQL) já foram importadas. Somente esta ocorreu esse problema, pois somente ela contém esse tipo de dados.

    Não entendi sua pergunta:"Poderia transcrever para este tópico o código de ativação do link"


    Fredy Esmeraldo
    Microsoft MCP, MCTS, MCITP Database Administrator 2008
    Visite o meu blog: http://fredyesmeraldo.wordpress.com
    Me siga no twitter: @fredyesmeraldo
    LinkedIN: Fredy Esmeraldo
    **Ajude a melhorar o sistema de busca do fórum.Marque a(s) resposta(s) que foram úteis**
    **Se esta resposta solucionou a questão, então, por favor, marque-a como resposta.**

    sexta-feira, 10 de julho de 2015 17:29
  • Deleted
    • Sugerido como Resposta Marcos SJ segunda-feira, 13 de julho de 2015 13:01
    • Marcado como Resposta Marcos SJ sexta-feira, 17 de julho de 2015 16:53
    sexta-feira, 10 de julho de 2015 19:25
  • Bom dia.

    Por falta de retorno do usuário, esta thread será encerrada.

    Caso seja necessário, por gentileza, abra uma thread nova.

    Atenciosamente


    Marcos Roberto de Souza Junior

    Esse conteúdo e fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as respostas que resolveram o seu problema. Essa e uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    sexta-feira, 17 de julho de 2015 16:54
  • Boa tarde,

    Você conseguiu resolver o seu problema? estou com o mesmo problema...


    Eriqeine

    segunda-feira, 27 de julho de 2015 16:38