Как парсить записи средствами PostgreSQL?

вытаскиваю информацию о ПК средствами PowerShell. Записываю информацию в PostgreSQL. Нужно парсить поле Description( чтобы нормализовать бд).
Выглядит поле так:
Login: 06789-ivanov; IP 10.1.222.34; Time: 23.06.2015 19:43:35
Нужно разбить на три части эту запись и сохранить в другую таблицу
  • Вопрос задан
  • 955 просмотров
Пригласить эксперта
Ответы на вопрос 1
Melkij
@Melkij
PostgreSQL DBA
Например,
CREATE OR REPLACE FUNCTION process_data(
    s_input text
)
RETURNS void
AS $function$
DECLARE
    a_data text[];
BEGIN

    a_data := regexp_matches(s_input, '^Login: ([^;]+); IP ([\d\.]+); Time: ([\d\:\.\s]+)$');

    raise notice 'Login %', a_data[1];
    raise notice 'IP %', a_data[2];
    raise notice 'Time %', to_timestamp(a_data[3], 'DD.MM.YYYY HH24:MI:SS');

END;
$function$
LANGUAGE plpgsql STABLE SECURITY DEFINER;
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы