以前没见过这个 - 当我尝试在 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
我对其他表有几个与此完全相同的查询,它们都已成功运行,但是,这一个查询导致了问题。非常感谢任何帮助。
你一定在做一些非常奇怪的事情。
Access 在字符串中使用 UTF-16,这意味着每个字符由 2 个字节*组成。
您显然正在尝试将二进制数据(例如
VARBINARY
或 OLE 对象列)转换为文本数据(例如长或短文本列)。
其中一些二进制数据显然是奇数个字节。这将导致某些内容不能是字符,因为字符需要是 2 个字节。这就是 Access 给出此错误的原因。
解决方案显然是:不要,确保要插入的表的类型和插入的表的类型匹配,并且永远不要将二进制数据存储在文本列中。
*一些罕见的例外,但都是 2 或 2 的倍数,所以绝不会是奇数