I found the tool at C:\U2\UniDK\U2ODBC_64bit\U2ODBC_Tester and things worked well there, although I wasn't able to execute the ".L RELLEVEL" that @Mike Rajkowski mentioned. I was able to execute CALL Subroutine (*HS.OLEDBINFO)
and see all the tables, and also was able to select *
from tables of interest and see data.
Interestingly, when looking at the OLEDBINFO results, TABLE_CAT was blank, TABLE_SCHEM was populated with a value that wasn't showing in SQL Server via the OLE DB for ODBC connection, and all table names where shown with THIS.FORMAT with TABLE_TYPE = TABLE.
When using the "ODBC-Compliant SQL" portion of the U2ODBC Tester (64bit) tool, it's odd that I had to query as select * from THIS_TABLE
to get results (using underscore rather than dot).
I then played around a bit more and got SSMS to throw the error:
"A four-part name was supplied, but the provider does not expose the necessary interfaces to use a catalog or schema."
I was then able to find posts on this in various places on the web, and the solutions offered there worked.
Although I still can't browse columns in the left pane of SSMS on the linked server, I am now able to query it and see columns and data in SSMS.
select * from [LINKEDSERVERVIAOLEDBFORODBC]...[THIS_TABLE];
Solution:
1. In SQL Server Management Studio, right click on provider named MSDASQL and display properties.
2. Clear the checkbox next to "Level zero only"
Ref:
https://www.kodyaz.com/sql-server-2016/msdasql-provider-doesnot-expose-necessary-interfaces-to-use-catalog-schema.aspx
http://sparkalyn.com/2008/12/invalid-schema-error/
https://stackoverflow.com/questions/31968343/select-from-mysql-linked-server-using-sql-server-without-openquery
http://www.thesqlpost.com/2015/01/sql-server-error-invalid-use-of-schema.html