我有一个包含两个字段的源文件:IP_ADDRESS和USER_NAME。我想在使用 DATASTAGE 将 IP 地址加载到数据仓库之前检查 IP 地址是否正确。我该怎么做呢?
2 回答
是的,您可以使用转换器或转换器和过滤器来执行此操作,具体取决于您使用的 Datastage 版本。如果您使用的是 PX,只需在转换器阶段对验证逻辑进行编码,然后在输出链接上设置一个过滤器,如果行未通过验证逻辑,则不允许它们向前传递。
我正在浏览 Stack Overflow,并认为我可能对您的问题有一个解决方案。如果您创建一个作业以从文件中获取所有 IP_ADDRESS 并将它们发送到 BASIC 转换器(在 DataStage 中搜索 BASIC 转换器。它不是通常在调色板上的那个)。从那里,将 Stage Variables 设置为 'SetUserStatus() 并将列名写入 peek 阶段(您根本不需要输出。SetUserStatus 是重要的部分)。现在,这将允许您将命令输出(IP 地址列表)传递给序列。从序列中,从您刚刚创建的作业(BASIC 转换器作业)开始,并将其链接到用户变量活动。在用户变量活动阶段,将名称设置为“IP 地址”,将表达式设置为 IP_ADDRESS.$UserStatus。然后,您可以使用循环来获取现在是列表的输出,并使用 Ping 命令将每个单独的 IP 地址发送到执行阶段,以查看它是否返回有效的 IP 地址。如果它确实返回了一个有效的 IP,那么让你的工作编写 USER_NAME 和 IP_ADDRESS 来执行一个“选择”语句,其中 IP_ADDRESS = 有效的 IP_ADDRESS。对于那些无效的,您可以将它们发送到不同的路径,并将它们写到某个地方的“.txt”文件中,这样您就知道哪些是无效的。我敢肯定,您将需要更多步骤,但这应该是要点。Select 语句,其中 IP_ADDRESS = 有效的 IP_ADDRESS。对于那些无效的,您可以将它们发送到不同的路径,并将它们写到某个地方的“.txt”文件中,这样您就知道哪些是无效的。我敢肯定,您将需要更多步骤,但这应该是要点。Select 语句,其中 IP_ADDRESS = 有效的 IP_ADDRESS。对于那些无效的,您可以将它们发送到不同的路径,并将它们写到某个地方的“.txt”文件中,这样您就知道哪些是无效的。我敢肯定,您将需要更多步骤,但这应该是要点。
希望我对您的问题的快速分析对您有所帮助。