XML中的无效字符无法使用Datastage作业

时间:2014-09-30 13:47:43

标签: sql xml database dataflow datastage

我是刚开始使用数据存储的新开发人员(来自SSIS的一些经验)。我正在做的第一件事就是将XML数据流从MQ处理到数据库中。我连接到MQ,使用XML作业将标记映射到每个db列,然后将其插入到db中。但是,我遇到了传入的xml的问题。我处理的每个xml文件中的一个字段包含相同的字符序列,类似于“& $!0”。

当我运行我的工作时,我得到一个错误,说这是一个非法的xml字符,并且作业失败。

在数据存储中是否有办法在xml中替换此值,或者甚至只删除它?我应该在工作中使用一个特定的工具吗?

显然,最简单的解决方案是修复数据,但是在平均时间内,我希望能够进行一些测试,所以替代解决方案现在很棒。

任何建议都将不胜感激。我是一名新开发人员,所以如果这个问题有点无知/低级,我会道歉。

2 个答案:

答案 0 :(得分:1)

使用像notepad ++这样的文本编辑器自己删除字符......

要自动执行,在Linux中使用sed将完成你的工作,windows中的sed也可以在windows上运行!

答案 1 :(得分:1)

这些字符只不过是Unicode。您需要在插入数据库表之前删除它们。

尝试以下代码:

s = s.replaceAll("\\p{&$!0}+", "");

注意:您需要查找所有Unicode并将其替换为"" (空白)。

您将获得更多信息here