【发布时间】:2017-03-21 09:57:36
【问题描述】:
我有一个问题需要帮助解决。我正在工作的业务是使用 Informatica 云在 AWS 和其他服务中执行大量 ETL。
我们得到了一个字段分隔符为“~|”的企业提供的平面文件目前,据我所知,informatica 仅接受单个字符分隔符。
有谁知道如何克服这个问题?
【问题讨论】:
标签: etl delimiter informatica flat-file informatica-cloud
我有一个问题需要帮助解决。我正在工作的业务是使用 Informatica 云在 AWS 和其他服务中执行大量 ETL。
我们得到了一个字段分隔符为“~|”的企业提供的平面文件目前,据我所知,informatica 仅接受单个字符分隔符。
有谁知道如何克服这个问题?
【问题讨论】:
标签: etl delimiter informatica flat-file informatica-cloud
Informatica 无法读取 composite delimiters。
首先,您可以将每一行作为一个长字符串输入 表达转换。在这种情况下,分隔符应该 设置为 \037 ,我还没有看到这个字符(ASCII 单位分隔符) 至少从 1982 年开始使用。然后重复调用 InStr() 在 EXP 中识别那些双管的位置 字符并使用 SubStr() 将每一行拆分为字段。
第二 (映射更容易,会话工作更多)你可以喂 文件到某个实用程序中,该实用程序将这些双管道字符替换为 字符 ASCII 31(上面提到的单位分隔符);这 必须设置会话,以便它从中读取输出 实用程序(输入文件类型 = 命令而不是文件)。那么源码 定义应包含 \037 作为字段分隔符,而不是 任何管道字符左右。
【讨论】: