MySQL链接服务器无法更新longtext

Pau*_*l D 8 mysql linked-server openquery

我有一个从SQL Server到mySQL数据库的链接服务器(使用MySQL ODBC Driver 5.3的Windows Server).我有一个独特的情况,如果我在OPEN QUERY中转换它们,我只能返回我的longtext列:

SELECT * 
FROM
OPENQUERY (woocommerce, 'SELECT meta_id, CONVERT(meta_value using UTF8) as meta_value
                         FROM woocommerce.wp_postmeta WHERE meta_id = 9465078') 
Run Code Online (Sandbox Code Playgroud)

如果我不转换/转换它我从链接服务器收到以下错误:

Msg 7399, Level 16, State 1, Line 1
The OLE DB provider "MSDASQL" for linked server "woocommerce" reported an error. The provider reported an unexpected catastrophic failure.
Run Code Online (Sandbox Code Playgroud)

我需要更新这个longtext列,"meta_value",但我不能,因为它已被转换/转换.

    UPDATE 
    OPENQUERY (woocommerce, 'SELECT meta_id, CONVERT(meta_value using utf8) 
                             FROM woocommerce.wp_postmeta WHERE meta_id = 9465078') 
    SET meta_value = 'outofstock';
Run Code Online (Sandbox Code Playgroud)

有没有办法使用OPENQUERY和链接服务器更新已转换/转换列?我尝试过转换或转换它的方式.

Mạn*_*yễn 1

驱动程序似乎列有问题LONGTEXT

您可以LONGTEXT使用选项限制列大小:

Limit column size to signed 32-bit range
Run Code Online (Sandbox Code Playgroud)

(注意不要丢失数据,但这种情况很少见,我认为任何字符串都不会超过 10 亿个字符 XD)

这里的最后一条评论将帮助您如何做到这一点

现在您可以删除演员表并可以正常进行更新。