Postgresql - удалить ненужные символы из потока данных с помощью хранимой процедуры или триггеров? - PullRequest
0 голосов
/ 17 ноября 2011

У меня есть поток данных, поступающий с машины, который хранится в базе данных Postgresql.Мне нужно убрать различных нежелательных персонажей и сохранить как исходный, так и новый результат.Например, у меня есть данные «34,5! *» или «17,9 P-» в поле и я хочу сохранить «34,5» или «17,9».Мне было интересно использовать триггер для вызова процедуры записи данных без ненужных символов в новое поле ...

1 Ответ

2 голосов
/ 17 ноября 2011

Вы можете легко сделать это в триггере с регулярным выражением, что-то вроде:

create or replace function clean_value() 
returns trigger 
language plpgsql
AS
$body$
begin
   new.clean_column = regexp_replace(new.dirty_column, '[^0-9\.]', '', 'g');
   return new;
end;
$body$
/

Это сохранит «чистую» версию ввода dirty_column в столбце clean_column.

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