Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

SSIS converte Varchar2 para DT_STR


Uma pergunta antiga que eu conheço, mas parece ainda ser relevante. E como não consegui encontrar uma resposta adequada nos últimos 3 meses que pesquisei, acho que agora é um bom momento para postar minhas descobertas.

Eu tive o mesmo comportamento curioso e finalmente consegui resolvê-lo. Meu layout ficou assim:
  • Banco de dados Oracle 10g R2 no Windows 2003 Server (vamos chamá-lo de ORA)
  • Máquina de desenvolvimento com Windows 8, Visual Studio 2012 + SSDT, Sql Express 2012,ODT 12.1.0.21 (vamos chamar isso de DEV)
  • Sql Server 2012 no Windows 2012 Server, Oracle Client 11.2 (vamos chamar isso de TEST)

Ambos DEV e TEST estavam se conectando ao ORA. DEV estava relatando colunas VARCHAR2 como DT_WSTR enquanto TEST insistiria que elas são DT_STR.

Instalei então o ODT 12.1.0.21 no TEST e o problema foi resolvido. Notavelmente, eu usei a opção "machine wide" durante a instalação. Não tenho certeza de quanto impacto isso teve.

Parece haver uma diferença nos tipos de dados que são retornados pelos provedores Oracle OleDb nas diferentes versões dos componentes do lado do cliente.