OVERLAYB
将一个字符串的一部分替换为另一个字符串,并将新的字符串以八位字节值的形式返回。
OVERLAYB 函数将多字节字符串视为八位字节(字节)串,并使用八进制数作为输入和输出的位置及长度说明符。字符串本身是 VARCHAR 类型,但把每个字节视为一个单独的字符串。
行为类型
不可变语法
OVERLAYB ( input‑string, replace‑string, position [, extent ] )
参数
-
input‑string
- 要处理的字符串,类型为 CHAR 或 VARCHAR。
-
replace‑string
- 用于替换 input-string 的指定子字符串的字符串,类型为 CHAR 或 VARCHAR。
-
position
- 整数 ≥1,指定 input‑string 的第一个八位字节覆盖 replace‑string。
-
extent
- 整数,指定要使用 replace‑string 覆盖的 input‑string 八位字节的数量。如果省略,则 OVERLAY 使用 replace‑string 的长度。
示例
=> SELECT OVERLAYB('123456789', 'ééé', 2);
OVERLAYB
----------
1ééé89
(1 row)
=> SELECT OVERLAYB('123456789', 'ßßß', 2);
OVERLAYB
----------
1ßßß89
(1 row)
=> SELECT OVERLAYB('123456789', 'xxx', 2);
OVERLAYB
-----------
1xxx56789
(1 row)
=> SELECT OVERLAYB('123456789', 'xxx', 2, 4);
OVERLAYB
----------
1xxx6789
(1 row)
=> SELECT OVERLAYB('123456789', 'xxx', 2, 5);
OVERLAYB
----------
1xxx789
(1 row)
=> SELECT OVERLAYB('123456789', 'xxx', 2, 6);
OVERLAYB
----------
1xxx89
(1 row)