Замените значение столбца в разделителе строк, используя Oracle SQL - PullRequest
0 голосов
/ 29 ноября 2018

У меня есть строковое значение в столбце таблицы, например

001|3880000005376|Personal ID| ||15-MAY-2006 

, и я хочу заменить четвертое значение другим строковым значением 'ABCDEF', возможно ли это путем одного обновления илиPL / SQL программа?

1 Ответ

0 голосов
/ 29 ноября 2018

Вот один из вариантов:

SQL> with test (id, col) as
  2  (select 1, '001|3880000005376|Personal ID| ||15-MAY-2006'   from dual union all
  3   select 2, '002|3880000005376|Personal ID|XXX||15-MAY-2007' from dual
  4  )
  5  select
  6    id,
  7    regexp_replace(col, '[^|]+', 'NEW STRING', 1, 4) result
  8  from test;

        ID RESULT
---------- ------------------------------------------------------------
         1 001|3880000005376|Personal ID|NEW STRING||15-MAY-2006
         2 002|3880000005376|Personal ID|NEW STRING||15-MAY-2007

SQL>

Он заменяет 4-е вхождение шаблона '[^|]+' значением NEW STRING.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...