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()
現在我有點困惑,因爲我必須在這裏丟失一些基本的東西
哪來的代碼申報後?身體的其餘部分? –
我有一個BEGIN和END以及其中的一些內容,但它並不重要因爲錯誤保持不變所以我離開了它 – aldr
是的,需要[分號](https://www.postgresql.org/docs/current/static/plpgsql -declarations.html),並且似乎無論您使用何種工具運行此查詢,它都會將您的查詢分解爲多個以分號分隔的查詢(至少會發生什麼情況,如果您的錯誤消息是完整的,而不僅僅是截取的多個樣本更大的錯誤信息)。 – pozs