Postgres STRING_TO_ARRAY альтернатива? Нравится STRING_TO_RECORD? - PullRequest
1 голос
/ 29 июля 2010

Мне нужно преобразовать разделенный запятыми текст в набор записей.Я создал эту функцию, но я не уверен, что лучший способ:

CREATE OR REPLACE FUNCTION F_StringListToRecord(pStringList TEXT, pDelimiter VARCHAR(10)) RETURNS SETOF RECORD AS $$
DECLARE
  vIndex INT;
  arrSize INT;
  arrValue TEXT[];
BEGIN
  arrValue := STRING_TO_ARRAY(pStringList, pDelimiter);
  arrSize := ARRAY_UPPER(arrValue, 1);
  FOR vIndex IN 1..arrSize LOOP
    RETURN QUERY SELECT arrValue[vIndex];
  END LOOP;
END $$
LANGUAGE plpgsql;

Есть ли какая-либо другая функция, похожая на STRING_TO_ARRAY (возможно, STRING_TO_RECORD)?

1 Ответ

3 голосов
/ 29 июля 2010

В 8.4 вы можете использовать:

select * from unnest(string_to_array(my_string_here,delimiter)) as v(x);

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