@STRSUB

使用 @STRSUB 函数可替换字符串(字符)列或常量中的字符串。将文字字符串括在单引号内。

对于此功能,Oracle GoldenGate 支持使用转义序列来表示 Unicode 中字符串列中的字符,或 Microsoft Windows、UNIX 和 Linux 操作系统的本机字符编码中的字符。如果以 Unicode 形式提供了任何参数,则目标列必须是 SQL Unicode 数据类型。

任何单个字节代码值 1 到 255 都可以使用字符串参数的十六进制或八进制格式。十六进制值 A 到 F 不区分大小写,前导 'x' 必须小写。不允许使用值零 (0)(\x00 和 \000),因为它是字符串终止符。

不支持 UNICODE 值。

此函数不支持 NCHAR 或 NVARCHAR 数据类型。

语法

@STRSUB
(<source_string>, <search_string>, <substitute_string>
[, <search_string>, <substitute_string>] [, ...])

对于多字节字符,STRSUB() 必须按如下方式使用:

FIND_CATEGORY = @STRSUB (FIND_CATEGORY, '\u00A0', ''),

<source_string>

源字符串,在单引号内,或源列的名称,其中包含要进行替代的字符。

<search_string>

要进行替换的单引号内的字符串。

<substitute_string>

将用单引号替代搜索字符串的字符串。

示例

以下语句将返回 xxABCxx。

@STRSUB ('123ABC123', '123', 'xx')

以下语句将返回 023zBC023。

@STRSUB ('123ABC123', 'A', 'z', '1', '0')

以下示例使用十六进制字符串参数将 ^Z 替换为空格。

@strsub (col1,'\x1A',' '));