我正在运行 SQL/BIDS 2005(当前的 PROD 环境)。
我正在尝试做一些基本的 POC,但任务相当简单:
- 从硬盘驱动器获取 XML 文件
- 做一些映射
- 使用结果更新数据库
我采取的步骤:
- 创建一个新包
- 添加数据流任务
- 在数据流中添加 XML 源任务
当我在 XML 源属性中提供 XML 和 XSD 位置时,一切正常。
我可以很好地看到所有 XML 字段,因此我可以继续进行映射等。
以上显然是不可接受的,我需要做的是从变量中传递 XML 和 XSD 值(以及稍后形成配置文件)。
所以我去了数据流的表达式并将 XML 和 XSD 指向变量(我评估了结果,结果很完美)。
…除了它不起作用。
当我尝试运行打开 XML 源任务时,它会抛出以下内容:
组件在验证期间检测到潜在的元数据损坏。 然后它将对象引用 nopt 设置为一个实例的堆栈...从 Dts.Pipeline.ManagedComponentHostValidate(IDTSManagedComponentWrapper90 包装器) 开始
正如我所提到的,我验证了 xml 文档和架构及其格式正确。当直接在 xml 源中传递它们时,它可以工作。仅当我尝试从数据流级别(作为表达式)传递这些值时,它才不起作用。