不确定 InfoSphere 11.7 null 处理

问题描述 投票:0回答:1

在工作中,我遇到了一个用 InfoSphere 11.7 编写的旧流程,我正在尝试将其迁移到另一个框架,但似乎没有人知道它是如何工作的(当然包括我)。

ETL 过程将固定长度的 .txt UTF-8 文件作为输入。文件结构如下:

300000007200_0000000000004 20230524123704000000  P4    0001000073873269002000005091662                                           0001000073875269002        8                                          1
700202909 2160000000005967 20230524041311000000  P1    000100005606358000700000236541000045097                      2502000501851        0001000066063680007        1000         000000237540000000    1
30000008810000000000003279 20230524041319000000  P2    00010000681349580050000366684071497  6204131926                         00000100006813496800464000000000000000036768100000                      1

在某些时候,程序会在每行的某个位置使用

IsNull
函数计算空值,例如:

If IsNull(Substrings(Input.reg,1,1)) then " " else Substrings(Input.reg,1,1)

我熟悉 pandas 或 SQL 中的空值,但我不确定在这种情况下什么是空值。根据我的理解,永远不会有空值,因为文件中的每个位置总会有一个字符(包括空格)。

我说得对吗?

null datastage ibm-infosphere
1个回答
1
投票

开发人员搜索 Substrings(Input.reg,1,1),其理论上可以返回 null 尽管事实上输入无法传递某些内容来获取 null。如果目标列类型不可为空,则需要传递一个返回“not-null”的表达式。因此,它们像这样包装输入,或者使用 NullToValue() 或 NullToEmpty() 函数包装输入,以便表达式本身保证不可为空的输出。

© www.soinside.com 2019 - 2024. All rights reserved.