Запрос не работает должным образом (может быть проблема с синтаксисом) - PullRequest
1 голос
/ 14 октября 2019

Я хочу удалить все нечисловые символы из моих столбцов, у меня есть запрос внутри моей процедуры, но он не работает полностью. Вот мой запрос:

UPDATE NMS_DATA SET ALIAS=REPLACE(ALIAS,'[^0-9]','') WHERE ALIAS !='--';

После запуска запроса из процедуры остаются нечисловые символы.

1 Ответ

1 голос
/ 14 октября 2019

Ну, вам нужно REGEXP_REPLACE, а не REPLACE (по крайней мере, согласно написанному вами коду).

Например:

SQL> with nms_data (alias) as
  2    (select 'abc993' from dual union all
  3     select '332#$'  from dual union all
  4     select '--'     from dual union all
  5     select 'xyz'    from dual union all
  6     select '1234'   from dual union all
  7     select '$#%'    from dual
  8    )
  9  select alias,
 10         regexp_replace(alias, '[^0-9]', '') result
 11  from nms_data
 12  where alias <> '--';

ALIAS  RESULT
------ --------------------
abc993 993
332#$  332
xyz
1234   1234
$#%

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