Temos um parceiro que usa um banco de dados IBM DB2 iAccess, ao qual nos conectamos usando um servidor vinculado em nosso SQL Server. Está funcionando muito bem há muito tempo, mas no fim de semana eles atualizaram seu sistema e agora um de nossos trabalhos está falhando.
O servidor vinculado ainda se conecta bem, o que significa que, se eu olhar para o servidor em Objetos de Servidor->Servidores Vinculados->nome do servidor, ele aparece e posso ver todas as tabelas.
Quando executo a consulta através de um OpenQuery funciona bem:
Selecione * From OpenQuery(GLDATA, 'Selecione WPCPKG, WPCBAC, WPCDEN, WPCPRT de S782D480.GLDATA.GPCKCTL') --Isso funciona
Mas quando eu uso a nomenclatura de quatro partes que é necessária para fazer uma inserção nessa tabela, ela falha:
selecione WPCPKG, WPCBAC, WPCDEN, WPCPRT de GLDATA.S782D480.GLDATA.GPCKCTL -- falha, mas costumava funcionar na semana passada
O erro diz:
O provedor OLE DB "MSDASQL" para o servidor vinculado "GLDATA" retornou a mensagem "Erro não especificado".
O provedor OLE DB "MSDASQL" para o servidor vinculado "GLDATA" retornou a mensagem "[IBM][System i Access ODBC Driver][DB2 for i5/OS] SQL0204 - SYSCOLUMNS no tipo QSYS2 *FILE não encontrado. ".
Msg 7311, Level 16, State 2, Line 7
Não é possível obter o conjunto de linhas do esquema "DBSCHEMA_COLUMNS" para o provedor OLE DB "MSDASQL" para o servidor vinculado "GLDATA". O provedor oferece suporte à interface, mas retorna um código de falha quando é usado.
De acordo com este artigo , tentei descartar e recriar o servidor vinculado e ativar e desativar "permitir inacesso" no provedor, mas isso não funcionou.
O erro é vago o suficiente para que eu não esteja encontrando muitas informações para tentar, e suspeito que seja um problema de configuração do lado deles, mas, a menos que eu dê a solução em uma bandeja, eles são muito lentos para consertar as coisas.
Bom, pesquisei bastante, encontrei algumas informações sobre o erro SQL0204, o que me levou a esta página de suporte:
https://www-01.ibm.com/support/docview.wss?uid=nas8N1016377
que tem instruções sobre quais comandos devem ser executados no servidor se você vir esse erro SQL0204.
Encaminhei isso para o cara de TI dos parceiros, que tentou (e alguns outros comandos de acordo com ele) e começou a funcionar.
Vou tentar ver se consigo fazer com que ele me envie quais outros comandos ele executou para que eu possa deixar essa resposta mais completa.
Editar:
Caso a página vinculada desapareça, aqui está uma captura de tela das informações: