अपने परीक्षण में, मैंने पाया कि CAST(field as char(4000))
. जोड़ना समस्या का समाधान भी किया।
मैंने एक MySQL 5.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
add जोड़ दूं :
select * from openquery(MYSQL, 'select CAST(summary_text as char(4000)) from scratch.tmp_patrick')
तब यह काम करता है। चार (4001) पर कास्ट करना विफल हो जाएगा।
मुझे यह स्पष्ट नहीं है कि 4000 वर्णों की सीमा कहाँ से आती है।