运行 Access DB 查询时出现 UNICODE 错误

问题描述 投票:0回答:1

以前没见过这个 - 当我尝试在 Access 中运行查询时,收到一条错误消息,指出“UNICODE 字符串的字节数不均匀”。

INSERT INTO tbl_ARCHIVE SELECT tbl_Ret.*, #12/31/2020# as ArchivedDate FROM tmpRet INNER JOIN tbl_Ret ON tmpRet.ID = tbl_Ret.RetID

我对其他表有几个与此完全相同的查询,它们都已成功运行,但是,这一个查询导致了问题。非常感谢任何帮助。

sql database ms-access unicode insert
1个回答
0
投票

你一定在做一些非常奇怪的事情。

Access 在字符串中使用 UTF-16,这意味着每个字符由 2 个字节*组成。

您显然正在尝试将二进制数据(例如

VARBINARY
或 OLE 对象列)转换为文本数据(例如长或短文本列)。

其中一些二进制数据显然是奇数个字节。这将导致某些内容不能是字符,因为字符需要是 2 个字节。这就是 Access 给出此错误的原因。

解决方案显然是:不要,确保要插入的表的类型和插入的表的类型匹配,并且永远不要将二进制数据存储在文本列中。

*一些罕见的例外,但都是 2 或 2 的倍数,所以绝不会是奇数

© www.soinside.com 2019 - 2024. All rights reserved.