mysql链接服务器无法更新longtext

pb3s4cty  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(479)

我有一个从sql server到mysql数据库的链接服务器(windows server使用mysql odbc驱动程序5.3)。我有一个独特的情况,只有在打开的查询中转换长文本列时,才能让它们返回:

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

如果我不转换/强制转换它,链接服务器会出现以下错误:

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.

我需要更新这个长文本列“meta\u值”,但我不能,因为它已经被转换/转换了。

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

是否有任何方法可以使用openquery和链接服务器来更新已转换/转换的列?我试过从各个方面转换或铸造它。

t5fffqht

t5fffqht1#

司机好像有问题 LONGTEXT 列。
你可以限制 LONGTEXT 带选项的列大小:

Limit column size to signed 32-bit range

(注意不要丢失数据,但这种情况很少发生,我认为任何字符串都不会超过10亿个字符xd)
这里的最后一条评论将帮助您如何做到这一点
现在您可以删除强制转换,并可以继续正常更新。

相关问题