0

我正在寻找一种方法来根据查询结果将一些文件移动到 RedHat Linux 上的“拒绝”目录。数据库是 Oracle 11gr2。

所有四个文件都在一次处理中。它们被 FTP 进程放置在一个共享上,并且计划的 OEM 作业每 15 分钟检查一次 XML 文件是否存在。

当它看到有 XML 文件要处理时,它会选择它们,使用 xmllint 验证它们并将文件复制到工作目录。

从那里,文件被加载到外部表中,具体取决于WHERE查询中子句的结果。

在加载过程中是否需要在文件失败或包含一条错误记录时将文件移动到文件rejected夹中?

我的测试用例中有 4 个 XML 文件:

  • 1 是正确的。
    • 加载没有问题。
  • 1有一个坏和一个好记录
    • 正确的记录已正确加载,而错误的记录则没有。但是我希望不加载整个“坏”文件,并且在没有将其加载到 oracle 之后,我想将文件移动到“拒绝”文件夹中。
  • 1 有一个 XML 错误
    • 被 xmllint 正确拒绝并移至“拒绝”文件夹。
  • 1 错过了标签内的值。
    • 拒绝,因为它不符合强制值。

提前致谢!

4

1 回答 1

0

针对 XSD 或 DTD 验证 XML 文件可以包括正则表达式。由于您的 XSD/DTD 将在运行时读入内存,因此您可以根据需要注入实际的正则表达式,以便您的测试用例完成其工作。

查看例如正则表达式,xsd 中的模式匹配以获取更多信息。

于 2012-12-18T13:33:05.790 回答