【发布时间】:2013-01-17 20:16:26
【问题描述】:
在将一些应用程序从 PHP 和 Delphi 迁移到 Java-RS 的过程中,一些列条目此时正在破坏表演。
在使用 JPA 从 mySQL 读取数据到 Java Pojos 后,使用 JaxB 将结果转换为 XML 并尝试将结果读回 JQuery / jqGrid 失败。
在浏览器中,问题只是显示为“格式不正确”。 使用 Eclipse XML 编辑器查看详细信息会给出错误消息:
An invalid XML character (Unicode 0x0) was found in the element content of the document
现在我想继续并修复原始数据。
- 查找具有 无效条目?
- SQL 查询如何解决这些问题 行?
假设有问题的列是“客户”表中的“名称”
对于问题 #1,我发现: SELECT name from customer where hex(name) like "%00";
工作。对于问题 #2,我假设使用左子字符串进行更新可能会起作用。在这种情况下,我不确定长度。看起来 length(name) 将返回包括终止零字符的长度。在这种情况下,使用 left(length(name)-1) 的更新会正常工作吗?
我不确定数据库的备份和恢复是否会保持当前有些损坏的数据库的状态。因此,了解如何使用故意创建以空字符结尾的字符串的插入语句来重现这种情况也会很有帮助。
【问题讨论】:
-
我目前正在尝试自动查找罪魁祸首列 - 首先使用 xmllint 从 xml 端 - 如何使用 mySQL 来完成?
-
在解析 XML 之前查找 XML 中的字符是否最容易,猜测它们应该看起来像
�或类似 -
不 - 它是一个二进制 0 仅以十六进制显示 - 这可能是 JPA 或 JaxB 问题 - 目前我不为此烦恼,并打算修复数据而不是工具。跨度>