我有一个带有值的字符串-'a','b','c','d,'e'。我需要将每个值转换为文本null-null,null,null,null,null。如果引号中有10个值并用逗号分隔,则将出现10个null。我尝试使用REGEXP_REPLACE,但无法获得结果。
declare
a varchar2(32767) := q'#'a','b','c'#';
c varchar2(32767);
begin
c := replace(REGEXP_REPLACE (a, <don't know what pattern should be here>, 'null'),'''');
dbms_output.put_line(c);
end;
/
答案 0 :(得分:0)
有很多方法可以做到这一点。例如,您可以使用正则表达式'[^,]+'
-表示任意数量(一个或多个)连续的非逗号字符。然后,该模式的每次出现都将被替换字符串替换(而逗号将保留在原处)。
declare
a varchar2(32767) := q'#'a','b','c'#';
c varchar2(32767);
begin
c := REGEXP_REPLACE (a, '[^,]+', 'null'); -- notice the regular expression
dbms_output.put_line(c);
end;
/
null,null,null
PL/SQL procedure successfully completed.