错误:#34; site"或附近的语法错误在PostgreSQL中

时间:2015-03-23 12:09:47

标签: postgresql-9.3

我正在创建一个存储过程,它接受数组或记录作为参数。

  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网站;

1 个答案:

答案 0 :(得分:0)

使用语句language SQL,您将函数定义为SQL函数。 DECLARE块是PL / pgSQL函数结构的一部分,因此您必须使用LANGUAGE plpgsql创建函数。

文档中的更多信息: