sql >> Databáze >  >> RDS >> Mysql

Široké pole varchar způsobuje chybu Požadovaná konverze není podporována pomocí openquery s propojeným serverem MySQL

Při testování jsem zjistil, že přidání CAST(field as char(4000)) také problém vyřešil.

V databázi MySQL 5.1 jsem vytvořil následující:

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

Když jsem provedl následující na SQL Server 2008 R2 SP1 (10.50.2500) pomocí 64bitového ovladače MySQL ODBC, verze 5.1 nebo 5.2w:

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

generuje chybu:

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

ale když přidám CAST :

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

pak to funguje. Odesílání do char(4001) se nezdaří.

Není mi jasné, kde se bere limit 4000 znaků.



  1. Vysvětlení operátora MariaDB MINUS

  2. Trendy v roce 2020, kterých by si správci databází měli být vědomi

  3. Jak odstranit prvních 1000 řádků z tabulky pomocí SQL Server 2008?

  4. Jak vybrat dva další sloupce z jiné tabulky na základě hodnot v hlavní tabulce?