Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Bidang varchar lebar menyebabkan Konversi yang diminta tidak didukung kesalahan menggunakan openquery dengan server tertaut MySQL

Dalam pengujian saya, saya menemukan bahwa menambahkan CAST(field as char(4000)) juga memecahkan masalah.

Saya membuat yang berikut ini di database MySQL 5.1:

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

Ketika saya menjalankan yang berikut ini di SQL Server 2008 R2 SP1 (10.50.2500), menggunakan driver MySQL ODBC 64-bit, baik versi 5.1 atau 5.2w:

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

itu menghasilkan kesalahan:

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

tetapi jika saya menambahkan CAST :

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

kemudian bekerja. Transmisi ke char(4001) akan gagal.

Tidak jelas bagi saya dari mana asal batas 4000 karakter.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara tercepat untuk memeriksa catatan yang sudah ada sebelum memasukkan [mysql_errno()]

  2. VARCHAR vs TEXT di MySQL

  3. Pilih Orang Tua dan Anak Dengan MySQL

  4. Apakah ada Profiler yang setara untuk MySql?

  5. Mysql - menggunakan kembali nilai yang dihitung