I setup a linked server with ODBC Driver on SQL Server 2016 and the connection test is successful.
Now I can see the list of table from My DB in MS SQL Server 2016 (Server Objects > Linked Servers) but can't execute queries that involves any of the STRING columns that show error message : OLE DB provider "MSDASQL" for linked server "MyLinkServer" returned message "Requested conversion is not supported.".
But if I do a query of just the FLOAT column it will work.
I’m not sure any of the columns (STRING) should need any conversion because I have tried to use CAST and CONVERT to explicitly convert the data type to CHAR but I also get the error message.
- Table Name : Test_Table
Field name Type
Name STRING
Product STRING
ID FLOAT
- Link Server Name : MyLinkServer
Ex. SQL statement which I executed and get the error message:
#1>> SELECT * FROM OPENQUERY(MyLinkServer, 'SELECT Name FROM indv.Test_Table')
Error : OLE DB provider "MSDASQL" for linked server "MyLinkServer" returned message "Requested conversion is not supported.".Msg 7341, Level 16, State 2, Line 1 Cannot get the current row value of column "[MSDASQL].Name" from OLE DB provider "MSDASQL" for linked server "MyLinkServer".
#2>> Select * from openquery(MyLinkServer, 'select CAST(Name as CHAR(40)) from indv.Test_Table')
Error : OLE DB provider "MSDASQL" for linked server "MyLinkServer" returned message "[MyLinkServer] (70) Invalid query: Syntax error: Expected ")" but got "(" at [1:29]".Msg 7321, Level 16, State 2, Line 1 An error occurred while preparing the query "SELECT CAST(Name as nvarchar(10)) FROM indv.Test_Table" for execution against OLE DB provider "MSDASQL" for linked server "MyLinkServer".
#3>> Select * from openquery(MyLinkServer,'Select convert(NVARC,Name) from indv.Test_Table')
Error : OLE DB provider "MSDASQL" for linked server "MyLinkServer" returned message "[MyLinkServer] (1100) The specified CONVERT scalar function target type is not available: NVARC.".Msg 7321, Level 16, State 2, Line 9 An error occurred while preparing the query "Select convert(NVARC,Name) from indv.Test_Table" for execution against OLE DB provider "MSDASQL" for linked server "MyLinkServer".
Could anyone please help to suggest the way to resolve this issue?
Thank you.
Now I can see the list of table from My DB in MS SQL Server 2016 (Server Objects > Linked Servers) but can't execute queries that involves any of the STRING columns that show error message : OLE DB provider "MSDASQL" for linked server "MyLinkServer" returned message "Requested conversion is not supported.".
But if I do a query of just the FLOAT column it will work.
I’m not sure any of the columns (STRING) should need any conversion because I have tried to use CAST and CONVERT to explicitly convert the data type to CHAR but I also get the error message.
- Table Name : Test_Table
Field name Type
Name STRING
Product STRING
ID FLOAT
- Link Server Name : MyLinkServer
Ex. SQL statement which I executed and get the error message:
#1>> SELECT * FROM OPENQUERY(MyLinkServer, 'SELECT Name FROM indv.Test_Table')
Error : OLE DB provider "MSDASQL" for linked server "MyLinkServer" returned message "Requested conversion is not supported.".Msg 7341, Level 16, State 2, Line 1 Cannot get the current row value of column "[MSDASQL].Name" from OLE DB provider "MSDASQL" for linked server "MyLinkServer".
#2>> Select * from openquery(MyLinkServer, 'select CAST(Name as CHAR(40)) from indv.Test_Table')
Error : OLE DB provider "MSDASQL" for linked server "MyLinkServer" returned message "[MyLinkServer] (70) Invalid query: Syntax error: Expected ")" but got "(" at [1:29]".Msg 7321, Level 16, State 2, Line 1 An error occurred while preparing the query "SELECT CAST(Name as nvarchar(10)) FROM indv.Test_Table" for execution against OLE DB provider "MSDASQL" for linked server "MyLinkServer".
#3>> Select * from openquery(MyLinkServer,'Select convert(NVARC,Name) from indv.Test_Table')
Error : OLE DB provider "MSDASQL" for linked server "MyLinkServer" returned message "[MyLinkServer] (1100) The specified CONVERT scalar function target type is not available: NVARC.".Msg 7321, Level 16, State 2, Line 9 An error occurred while preparing the query "Select convert(NVARC,Name) from indv.Test_Table" for execution against OLE DB provider "MSDASQL" for linked server "MyLinkServer".
Could anyone please help to suggest the way to resolve this issue?
Thank you.