Oracle
 sql >> Database >  >> RDS >> Oracle

SSIS converte Varchar2 in DT_STR

Una vecchia domanda che conosco, ma sembra essere ancora rilevante. E poiché non sono riuscito a trovare una risposta adeguata negli ultimi 3 mesi che ho cercato, immagino che ora sia il momento migliore per pubblicare le mie scoperte.

Ho avuto lo stesso comportamento curioso e finalmente sono stato in grado di risolverlo. Il mio layout era simile a questo:

  • Database Oracle 10g R2 su Windows 2003 Server (chiamiamolo ORA)
  • Macchina di sviluppo con Windows 8, Visual Studio 2012 + SSDT, Sql Express 2012, ODT 12.1.0.21 (chiamiamola DEV)
  • Sql Server 2012 su Windows 2012 Server, Oracle Client 11.2 (chiamiamolo TEST)

Sia DEV che TEST si stavano connettendo a ORA. DEV segnalava le colonne VARCHAR2 come DT_WSTR mentre TEST insisteva sul fatto che fossero DT_STR.

Ho quindi installato ODT 12.1.0.21 su TEST e il problema è stato risolto. In particolare, ho utilizzato l'opzione "a livello di macchina" durante l'installazione. Non sono sicuro dell'impatto che ha avuto.

Sembra esserci una differenza nei tipi di dati restituiti dai provider Oracle OleDb nelle diverse versioni dei componenti lato client.