Stare pytanie, które znam, ale wydaje się nadal aktualne. A ponieważ nie mogłem znaleźć odpowiedniej odpowiedzi w ciągu ostatnich 3 miesięcy, w których szukałem, uważam, że teraz jest najlepszy czas na opublikowanie moich wyników.
Miałem takie samo dziwne zachowanie i wreszcie udało mi się je rozwiązać. Mój układ wyglądał tak:
- Baza danych Oracle 10g R2 w systemie Windows 2003 Server (nazwijmy ją ORA)
- Maszyna deweloperska z Windows 8, Visual Studio 2012 + SSDT, Sql Express 2012,ODT 12.1.0.21 (nazwijmy to DEV)
- Sql Server 2012 na Windows 2012 Server, Oracle Client 11.2 (nazwijmy to TEST)
Zarówno DEV, jak i TEST łączyły się z ORA. DEV zgłaszało kolumny VARCHAR2 jako DT_WSTR, podczas gdy TEST twierdził, że są to DT_STR.
Następnie zainstalowałem ODT 12.1.0.21 na TEST i problem został rozwiązany. Warto zauważyć, że podczas instalacji użyłem opcji „na całą maszynę”. Nie jestem pewien, jaki to miało wpływ.
Wydaje się, że istnieje różnica w typach danych zwracanych przez dostawców Oracle OleDb w różnych wersjach komponentów po stronie klienta.