2014-01-10 180 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。 –