在 Like 映射的源值表达式中使用特殊字符

源值和目标值表达式可以包含一个或多个特殊字符。只有 "Like" 映射支持特殊字符。

  • 星号 (*)

    星号 (*) 表示源值。星号 (*) 的前后可以添加一个或多个字符,这样便可根据该前缀或后缀对源值进行筛选。该通配符提取源中提供的任何内容,并将其放入目标列中,通常添加一个前缀。

  • 问号 (?)

    问号 (?) 从源值中去除单个字符。可以在表达式中使用一个或多个问号 (?)。还可以将问号与其他表达式组合使用。例如,A?? 查找以 A 开头且后面跟着两个任意字符的成员,并选择这些成员或去除这两个字符。

  • <1>、<2>、<3>、<4>、<5>

    对具有串联值的行进行处理并提取相应的值。源成员必须使用 "_" 字符作为分隔符。

    注:

    <1>、<2>、<3>、<4>、<5> 可以与问号 (?) 一起使用,但是不能与星号 (*) 一起使用。

  • <BLANK>

    只处理包含空白字符(空格)的行。

    系统仅将源成员是 ' ' 的表达式读取为 <BLANK>。在这种情况下,用单引号将单个空白字符括起来。如果源具有 NULL(即,显示为 ,, 或由 " " 括起的空格),则不将 NULL 解释为 <BLANK>。只会解释 ‘<space char> 表达式。

    注:

    可以在源和目标表达式中使用 <BLANK> 表示法。如果在目标表达式中使用,则会向目标中写入空格。

表 9-1 使用特殊字符的表达式示例

使用的特殊字符 映射类型 源值 目标值 结果 说明

*

数据加载 * 1000

1000 返回 1000

WXYZ 返回 1000

在此示例中,处理所有的行,并使用默认值 1000 覆盖源值。

在表达式中,WXYZ 还会返回 1000。因为您输入了一个星号作为源值,因此将使用目标值 1000 替换任意源值。

*

数据加载 * *

1000 返回 1000

WXYZ 返回 WXYZ

在此示例中,将处理所有的行,并按原样替换源值。

*

去除 * A*

101 返回 A101

处理所有源成员,并添加 "A" 作为前缀。

*

去除 *_DUP *

1000_DUP 返回 1000

只处理以 "_DUP" 结尾的源值并将 "_DUP" 去除。

?

去除 ?* *

A1000 返回 1000

B2000 返回 2000

此结果只处理长度为一个或更多字符的源值。

去除第一个字符

?

去除 *???? *

1000_DUP 返回 1000

A1000 返回 A

此结果只处理长度为四个或更多字符的源值。

去除最后 4 个字符

<1>, <2>, <3>, <4>, <5>

数据加载 <1> *

01_420 返回 01

 

<1>, <2>, <3>, <4>, <5>

数据加载 <2> *

01_420 返回 420

 

<1>, <2>, <3>, <4>, <5>

数据加载 <3> *

01_420_AB_CC1_001 返回 AB

 

<1>, <2>, <3>, <4>, <5>

去除 ?<1> *

A01_420 返回 01

 

<BLANK>

数据加载 <BLANK> [None]

' ' 返回 [None]

'01_ ' 返回 [None]

显示单引号只是为了更好地进行说明。