Postgres STRING_TO_ARRAY另类?喜欢STRING_TO_RECORD?

时间:2010-07-29 19:17:39

标签: database postgresql stored-procedures function

我需要将逗号分隔的文本转换为一组记录。我创建了这个功能 但我不相信最好的方法:

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 个答案:

答案 0 :(得分:3)

在8.4中你可以使用:

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