Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Trường varchar rộng gây ra lỗi chuyển đổi được yêu cầu không được hỗ trợ bằng cách sử dụng truy vấn mở với máy chủ được liên kết MySQL

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.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL không thể tạo ràng buộc khóa ngoại

  2. MySQL chọn một trường từ bảng điều kiện WHERE nằm trong nhiều hàng

  3. Lỗi hệ thống RMySQL:10060

  4. Lỗi phân tích cú pháp:lỗi cú pháp, không mong muốn '' (T_ENCAPSED_AND_WHITESPACE)

  5. 2 hộp nhập tự động điền / gợi ý sử dụng jQuery hoặc Ajax với hộp thứ hai dựa trên các lựa chọn đầu tiên với nhiều mục