I've got MSSQL 2008 64bit linked to Oracle databases using OraOLEDB.Oracle 18.104.22.168.0.
The query in question is something like "select * from server..schema.table where column='123'". col is of type varchar2.
- When run against Oracle 9i with NLS_CHARACTERSET='WE8MSWIN1252', the predicate is executed in the linked Oracle DB.
- When run against Oracle 11g with NLS_CHARACTERSET='AL32UTF8', all rows are fetched from the linked Oracle DB and the predicate is executed in MSSQL.
Has anyone managed to push predicate evaluation against varchar2 columns to the remote server with UTF-8, using four-part names?
The linked server setup is identical in both cases. The table in question has been migrated from 9i to 11g; indices are the same. NLS_LANG on the MSSQL machine is set to GERMAN_GERMANY.WE8MSWIN1252. The MSSQL collation is set to Latin1_GENERAL_BIN2, as NLS_SORT='BINARY'.