【发布时间】:2017-12-08 15:24:27
【问题描述】:
我有一个进程正在接收成对出现的文件。一个是ctr文件,另一个是数据文件。 ctr 和数据文件将始终具有相同的名称,但扩展名不同。例如。 dfghj.ctl 和 dfghj.dat
我遇到的问题是我同时收到多个这样的对。判断哪个是哪个的唯一方法是查看 ctl 文件。这告诉我与之相关的 .dat 文件是 report.jsonl 文件还是 delta.jsonl 文件。
.ctl 的一个例子是:
<DTSControl>
<Version>1.0</Version>
<AddressType>DTS</AddressType>
<MessageType>Data</MessageType>
<From_DTS>x26OT075</From_DTS>
<To_DTS>x26OT075</To_DTS>
<Subject>ECDS Submission</Subject>
<LocalId>TEST-delta.jsonl</LocalId>
<WorkflowId>SUS_CDS</WorkflowId>
<Encrypted>N</Encrypted>
<Compress>Y</Compress>
</DTSControl>
我需要了解的是 LocalId,它告诉我 .dat 是什么类型的文件,因此我需要将它加载到哪个表。一旦我知道哪个文件是哪个文件,我就需要将关联的 .dat 文件名传递给一个变量以填充源连接。
我唯一能想到的是一个脚本任务来加载一个 ctl 文件,隔离 LocalId,如果它像 *-report.jsonl 然后去掉文件的最后三个字符并用 dat 替换 ctl 并传递它字符串到变量,但我不知道如何访问 LocalId,因为我不使用 c#。
有没有人能指点一下如何到达那里?它可能并不总是第八行,所以我更愿意告诉它去 LocalID 不会改变。
提前致谢
【问题讨论】:
标签: c# sql ssis sql-server-2016 script-task