Trong thử nghiệm của mình, tôi thấy rằng việc thêm CAST(field as char(4000))
cũng đã giải quyết được vấn đề.
Tôi đã tạo phần sau trong cơ sở dữ liệu MySQL 5.1:
create table tmp_patrick (summary_text varchar(4096));
insert into tmp_patrick values ('foo');
Khi tôi thực thi phần sau trên SQL Server 2008 R2 SP1 (10.50.2500), sử dụng trình điều khiển MySQL ODBC 64-bit, phiên bản 5.1 hoặc 5.2w:
select * from openquery(MYSQL, 'select summary_text from scratch.tmp_patrick')
nó tạo ra lỗi:
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".
nhưng nếu tôi thêm CAST
:
select * from openquery(MYSQL, 'select CAST(summary_text as char(4000)) from scratch.tmp_patrick')
sau đó nó hoạt động. Truyền tới biểu đồ (4001) sẽ không thành công.
Tôi không rõ giới hạn 4000 ký tự đến từ đâu.