2012-02-07 71 views
0

考虑我有这样一个功能(但下面确实工作):PostgreSQL的:转换阵列到字符串,分隔符

CREATE FUNCTION func(VARIADIC params character varying[]) 
RETURNS type1 AS 
$BODY$ 
    SELECT * FROM func2('id', array_to_string($1,'###’) 
$BODY$ 
LANGUAGE sql VOLATILE; 

FUNC2的签名是:

func2(character varying, character varying) 

因此,我试图做的是将数组从“func”转换为一个长字符串,通过说“###”字符分隔。然后我想传递整个字符串作为func2的第二个参数。

+0

什么错误,你得到;或者如果没有错误,它是如何“不起作用”的? – araqnid 2012-02-07 15:40:15

+0

以上只是给我一个语法错误... – Larry 2012-02-07 15:52:33

+1

你错过了一个括号,'###'后的单引号是一个非标准字符,而不是一个普通的引号。 – araqnid 2012-02-07 15:56:04

回答

1

只是为了清楚,回答上面的问题如下:

CREATE FUNCTION func(VARIADIC params character varying[]) 
RETURNS type1 AS 
$BODY$ 
    SELECT * FROM func2('id', array_to_string($1,'###’)) 
$BODY$ 
LANGUAGE sql VOLATILE;