sql >> Database teknologi >  >> RDS >> Mysql

Bredt varchar-felt årsager Anmodet konvertering understøttes ikke fejl ved brug af openquery med MySQL-linket server

I min test fandt jeg ud af, at tilføjelse af CAST(field as char(4000)) også løst problemet.

Jeg oprettede følgende i en MySQL 5.1-database:

create table tmp_patrick (summary_text varchar(4096));
insert into tmp_patrick values ('foo');

Da jeg udførte følgende på SQL Server 2008 R2 SP1 (10.50.2500), ved hjælp af MySQL ODBC-driver 64-bit, enten version 5.1 eller 5.2w:

select * from openquery(MYSQL, 'select summary_text from scratch.tmp_patrick')

det genererer fejlen:

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". 

men hvis jeg tilføjer CAST :

select * from openquery(MYSQL, 'select CAST(summary_text as char(4000)) from scratch.tmp_patrick')

så virker det. Casting til char(4001) vil mislykkes.

Det er ikke klart for mig, hvor grænsen på 4000 tegn kommer fra.



  1. PDO:Databaseforbindelse på ekstern hjemmeside

  2. Database historik

  3. Få seneste række med gruppe efter og Laravel

  4. SQLAlchemy, Psychopg2 og Postgresql COPY