私のテストでは、CAST(field as char(4000))
を追加することがわかりました。 問題も解決しました。
MySQL5.1データベースで次のものを作成しました。
create table tmp_patrick (summary_text varchar(4096));
insert into tmp_patrick values ('foo');
SQL Server 2008 R2 SP1(10.50.2500)で、MySQL ODBCドライバー64ビット(バージョン5.1または5.2w)を使用して以下を実行した場合:
select * from openquery(MYSQL, 'select summary_text from scratch.tmp_patrick')
エラーが発生します:
OLE DB provider "MSDASQL" for linked server "MYSQL" returned message "Requested conversion is not supported.".
Msg 7341, Level 16, State 2, Line 1
Cannot get the current row value of column "[MSDASQL].summary_text" from OLE DB provider "MSDASQL" for linked server "MYSQL".
しかし、CAST
を追加すると :
select * from openquery(MYSQL, 'select CAST(summary_text as char(4000)) from scratch.tmp_patrick')
その後、それは動作します。 char(4001)へのキャストは失敗します。
4000文字の制限がどこから来ているのか私にはわかりません。