2014-01-10 212 views
1

我在PgAdmin中創建存儲過程以將數據插入到不同表中的表中。我已經嘗試了下面的代碼,但我被要求返回類型。我需要添加什麼?PgAdmin函數返回類型

而且,我怎麼使用這個程序將數據插入到不同表的表?

CREATE OR REPLACE FUNCTION stager.ProductDimSP 
(
cat_name character varying(25) , 
pr_name character varying(40) , 
pr_id character varying(6) , 
disc boolean  
) RETURNS NULL ON NULL INPUT AS 
$$ 
BEGIN 
INSERT INTO stager."ProductDimTable" 
    ( 
    category_name, product_name, product_id, discontinued   
) 
VALUES 
    ( 
    cat_name, pr_name, pr_id, disc 
) 
END 
$$ 
LANGUAGE 'plpgsql'; 
+0

當我在年底前加返回void,我還得到一個錯誤:函數的結果類型必須指定 –

回答

2
CREATE OR REPLACE FUNCTION stager.ProductDimSP 
(
cat_name character varying(25) , 
pr_name character varying(40) , 
pr_id character varying(6) , 
disc boolean  
) 
RETURNS VOID -- this defines a function with no return value 
AS 
$$ 
BEGIN 
INSERT INTO stager."ProductDimTable" 
    ( 
    category_name, product_name, product_id, discontinued   
) 
VALUES 
    ( 
    cat_name, pr_name, pr_id, disc 
); -- this semicolon was also missing 
END 
$$ 
LANGUAGE plpgsql; -- do not put the language name in quotes 
+0

謝謝:)現在我需要使用函數來填充表由兩場不同的表格。我怎樣才能做到這一點? 「ProductDimSP」(「Category」.category_name,「Products」.product_name, 「Products」.product_id,「Products」.discontinued)我試着這樣做,但我懷疑這是正確的,因爲我得到錯誤:SELECT stager。 –