二进制替换
来自 PostgreSQL wiki
跳转到导航跳转到搜索二进制替换 (bytea 的替换)
此函数等同于文本的内置函数 replace(string text, from text, to text)
,适用于二进制字符串 (bytea)。
它会在 str 中搜索 s1 的出现并用 s2 替换它们。
CREATE FUNCTION binary_replace(str bytea, s1 bytea, s2 bytea)
RETURNS bytea as $$
DECLARE
i int:=position(s1 in str);
j int;
l1 int:=length(s1);
l2 int:=length(s2);
BEGIN
while (i>0) loop
str:=overlay(str placing s2 from i for l1);
j:=position(s1 in substring(str from i+l2));
if (j>0) then
i:=i+j-1+l2;
else
i:=0;
end if;
end loop;
return str;
END
$$ language plpgsql immutable;