Как заменить разделенные запятыми разные значения определенным значением - PullRequest
0 голосов
/ 13 июня 2019

У меня есть строка со значениями - 'a', 'b', 'c', 'd,' e '. Мне нужно преобразовать каждое из значений в текст null - null, null, null, null, null. Если в кавычках 10 значений и они разделены запятой, то появится 10 пустых значений. Я пытался использовать 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;
/

1 Ответ

0 голосов
/ 13 июня 2019

Есть много способов сделать это.Например, вы можете использовать регулярное выражение '[^,]+' - что означает любое число (один или несколько) последовательных символов, не являющихся запятыми.Затем каждое вхождение этого шаблона будет заменено строкой замены (пока запятые останутся на месте).

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.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...