данные обрезки оракула в столбце таблицы - PullRequest
1 голос
/ 10 марта 2011

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

Как таковой:

update THIRD_PARTY_ADRS_INFO_TEMP
set HOUSE_NO = TRIM(HOUSE_NO);

просто зависает, когда я пытаюсь запустить его в SQL Developer.

Я также пробовал TRIM(' ' from HOUSE_NO) и REPLACE(HOUSE_NO,' ','') все с одинаковым эффектом

Кажется, это должно быть очень просто ...

идеи

Ответы [ 3 ]

3 голосов
/ 10 марта 2011

Если он «зависает», то это говорит о том, что ваш сеанс заблокирован другим сеансом. Вы пытаетесь обновить каждую строку в таблице; если другой сеанс заблокировал строку в той же таблице и еще не зафиксирован, ваш сеанс будет ждать.

2 голосов
/ 10 марта 2011

Рад, что вы решили блокировку строки.Что касается удаления всевозможных пробелов, вы также можете посмотреть REGEXP_REPLACE, если в последней версии Oracle.Это немного медленнее, чем обрезка, но если у вас есть несколько возможных непечатаемых символов, возможно, стоит посмотреть.

например,

select regexp_replace(x,'[[:space:]|[:blank:]|[:cntrl:]]*$','')
   from (select 'ad f cde  '||chr(10)||chr(13)||chr(8)||' ' as x from dual);
1 голос
/ 10 марта 2011

Сколько строк в вашей таблице?Вы можете попробовать сделать выбор, а не обновление (например, с rownum <10), чтобы убедиться, что он работает. </p>

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