2012-02-07 41 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;