Bulk replace in Oracle

mynameisvova
Дата: 25.11.2009 11:33:34
Всем привет.

У меня вопрос.

Мне в запросе надо выбрать поле, но для этого поля сделать несколько раз replace - по-удалять из значения все пробелы, запятые, и прочие символы типа "~!@#$%^&*...'.

Как можно это сделать более правильно, а то такой вариант не оч. нравится:

select replace(replace(replace(replace(a.field,',',''),'!',''),'@',''),'''','') from  table1 as A


БД - Oracle 9i
Elic
Дата: 25.11.2009 11:35:42
RTFM translate
orawish
Дата: 25.11.2009 11:37:56
mynameisvova,

translate (str,0||'весь хлам поименно',0)
andrey_anonymous
Дата: 25.11.2009 11:38:03
Попробуйте так:
select translate(a.field,'A~!@#$%^&*','A') from table1 as a
adrinalina
Дата: 25.11.2009 13:42:29
Я как-то так делал, если я прально понял(сам тока начал изучать...)

TRANSLATE(price,
'0123456789р.,~йцукенгшщзхъфывапролджэячсмитьбюё!@#$%^&*()-_=+|\[]{}
:;"?><№%/ъqwertyuiopasdfghjklzxcvbnm
QWERTYUIOPASDFGHJKLZXCVBNMЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮ ', '0123456789'

У меня price это столбец. Такой транслит оставлял мне только цифры от 0до9.
andrey_anonymous
Дата: 25.11.2009 13:46:11
adrinalina
Я как-то так делал
...
Такой транслит оставлял мне только цифры от 0до9.

http://www.sql.ru/forum/actualthread.aspx?tid=175677#1463696
mynameisvova
Дата: 25.11.2009 15:38:20
Сработало. Спасибо.