2017-03-16 62 views
0

分配返回值我創建了一個返回松鼠:從功能到一個變量

text[] 

,因爲它應該

CREATE OR REPLACE FUNCTION another_function_array() 
RETURNS text[] AS $$ 
SELECT array_agg(column_name::text) 
FROM information_schema.columns   
WHERE table_schema = 'abc' AND table_name = 'xyz' 
$$ 
LANGUAGE SQL; 

現在我想使用這個函數在另一個函數,它的工作原理的功能:

CREATE OR REPLACE FUNCTION get_array() 
RETURNS VOID AS $$ 
DECLARE 
arr text[] := another_function_array() 
$$ LANGUAGE plpgsql; 

,這讓我的輸出

Error: ERROR: syntax error at end of input Position: 107 SQLState: 42601 ErrorCode: 0

好所以

; 

arr text[] := another_function_array() 

末丟失了我的第一個猜想,但是當我添加它,我得到的錯誤

java.lang.ArrayIndexOutOfBoundsException Error occurred in: CREATE OR REPLACE FUNCTION get_array() RETURNS VOID AS $$ DECLARE arr text[] := another_function_array()

現在我有點困惑,因爲我必須在這裏丟失一些基本的東西

+0

哪來的代碼申報後?身體的其餘部分? –

+0

我有一個BEGIN和END以及其中的一些內容,但它並不重要因爲錯誤保持不變所以我離開了它 – aldr

+1

是的,需要[分號](https://www.postgresql.org/docs/current/static/plpgsql -declarations.html),並且似乎無論您使用何種工具運行此查詢,它都會將您的查詢分解爲多個以分號分隔的查詢(至少會發生什麼情況,如果您的錯誤消息是完整的,而不僅僅是截取的多個樣本更大的錯誤信息)。 – pozs

回答

0

與分配問題,松鼠正在尋找一個分離器 這是

; 

這一問題的解決方案,可以發現here

相關問題