有人知道我如何在DataStage作业中确定输入顺序文件是否有MicroSoft或Unix的EOL标记,这样它就可以将路径导向作业的其余部分?谢谢
发布于 2022-06-02 10:17:21
如果您只想确保可以读取所有数据,而不管行尾是什么,那么在一个工作中这样做可能是有用的,而不是为每个DOS和UNIX文件维护单独的作业。因此,这个答案不符合确切的问题,但可能仍然是答案。
在顺序文件阶段中,您可以定义一个筛选器 sed 's/\r//'来将DOS (\r\n)换行(\r\n)转换为UNIX换行符(\n)。
在“格式”选项卡中,将UNIX newline定义为记录分隔符。
请注意,在顺序文件中定义筛选器时,它有一些缺点,
First Line is Column Names在使用筛选器时不可用。如果输入文件的第一行中有列名,则需要通过使用sed 's/\r//' | tail -n +2命令扩展筛选器来手动删除它
Report Progress在使用筛选器时不可用。您可能希望将列定义中的最后一列的类型设置为VarChar或NVarChar,我看到了将固定长度类型(如NChar或Char )定义为上一列类型的奇怪行为。虽然我没有对此做过更深入的研究,但我相信这与使用过滤器有关。在DS 11.7.1中测试
https://stackoverflow.com/questions/72449769
复制相似问题