Разделить строку с двумя разделителями и преобразовать тип
У меня есть функция PL / pgSQL, как это (спасибо парню, который сделал это возможным):
CREATE OR REPLACE FUNCTION public.split_string(text, text)
RETURNS SETOF text
LANGUAGE plpgsql
AS $function$
DECLARE
pos int;
delim_length int := length($2);
BEGIN
WHILE $1 <> ''
LOOP
pos := strpos($1,$2);
IF pos > 0 THEN
RETURN NEXT substring($1 FROM 1 FOR pos - 1);
$1 := substring($1 FROM pos + delim_length);
ELSE
RETURN NEXT $1;
EXIT;
END IF;
END LOOP;
RETURN;
END;
$function$
Разбивает строку с разделителем. Как это:
select * from split_string('3.584731 60.739211,3.590472 60.738030,3.592740 60.736220', ' ');
"3.584731"
"60.739211,3.590472"
"60.738030,3.592740"
"60.736220"
Как я могу сохранить результаты в temp_array или temp_table. Поэтому я могу получить результаты в temp_x и снова разделить эти точки. Подобно:
"3.584731"
"60.739211"
"3.590472"
"60.738030"
"3.592740"
"60.736220"
и вернуть значения какdouble precision
, И все это должно быть сделано в функции.