我正在创建一个存储过程,它接受数组或记录作为参数。
CREATE TYPE site AS(
siteid integer,
packageid integer,
status text
);
CREATE OR REPLACE FUNCTION packageinfo(IN
info site[]
)RETURNS VARCHAR AS $$
DECLARE
info_element site;
BEGIN
FOREACH info_element IN ARRAY info
LOOP
INSERT INTO sitepackage(
siteid,
packageid,
status
) VALUES(
info_element.siteid,
info_element.packageid,
info_element.status
);
END LOOP;
RETURN 'OK';
END;
$$ LANGUAGE sql;
但它给了一个 错误:“站点”或附近的语法错误 第11行:info_element网站;
答案 0 :(得分:0)
使用语句language SQL
,您将函数定义为SQL函数。 DECLARE
块是PL / pgSQL函数结构的一部分,因此您必须使用LANGUAGE plpgsql
创建函数。
文档中的更多信息: