【问题标题】:DataStage and File FormatsDataStage 和文件格式
【发布时间】:2023-01-15 09:27:58
【问题描述】:

有谁知道我如何在 DataStage 作业中确定输入顺序文件是否具有 MicroSoft 或 Unix 的 EOL 标记,以便它可以通过作业的其余部分引导路径? 谢谢

【问题讨论】:

  • 请阐明您的具体问题或提供更多详细信息以准确突出您的需求。正如目前所写的那样,很难准确地说出你在问什么。

标签: datastage


【解决方案1】:

如果您只是想确保无论行尾如何都能读取所有数据,这可能有助于在一个作业中完成它,而不是为每个 DOS 和 UNIX 文件维护单独的作业。所以这个答案不符合精确的问题,但可能仍然是答案。

在里面顺序文件阶段, 你可以定义一个过滤器sed 's/ //' 将 DOS (Windows) 换行符 ( ) 转换为 UNIX/Linux 换行符 ( )。

在格式选项卡中,将 UNIX newline 定义为记录分隔符。

请注意,在顺序文件中定义过滤器时,它具有一些缺点:

  • 选项 First Line is Column Names 在使用过滤器时不可用。
    • 如果您的输入文件在第一行有列名,您需要通过使用 tail 命令扩展过滤器来手动删除它:sed 's/ //' | tail -n +2
  • 选项 Report Progress 在使用过滤器时不可用。
  • 您可能希望将列定义中最后一列的类型设置为 VarChar 或 NVarChar,我看到将 NChar 或 Char 等固定长度类型定义为最后一列类型的奇怪行为。虽然我没有对此进行更深入的研究,但我相信这与使用过滤器有关。

在 DS 11.7.1 中测试

【讨论】:

    猜你喜欢
    • 2016-04-19
    • 1970-01-01
    • 2016-11-26
    • 2020-10-20
    • 1970-01-01
    • 2018-04-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-19
    相关资源
    最近更新 更多