如何替换由“|”分隔的字符串中的第 N 列在 pl/sql

How to replace the Nth column in a string separated by '|' in pl/sql

这是我的字符串:

strRecord := 'aaa|bbb|123|678|hi|NULL|987|NULL|NULL|aaa|ccc';

这里的分隔符是|

我想用 PL/SQL 中的一些变量更改第 6 列 (NULL)。

我该怎么做?

这可能是使用正则表达式最简单的方法:

strRecord := regexp_replace(strRecord,'\|\w+', '|MEH',1 ,5);

要用字符串 'MEH' 替换第六个元素,请将出现次数设置为 5。请注意,您的定界符是一个管道,它是正则表达式中的 OR 运算符,因此您需要将其转义。