我在Postgresql数据库中定义了以下存储过程或函数:
CREATE OR REPLACE FUNCTION insert_val(int)
$body$
BEGIN
FOR i IN 1..10 LOOP
insert into test (val)
values($23);
END LOOP;
END;
$body$ Language 'plpgsql' VOLATILE;
我只是想在循环中插入这些数据,但我总是得到这个错误:
Syntaxfehler bei»开始«
也许我错过了我的功能?
答案 0 :(得分:1)
我不明白错误信息,因为它不是英文版,但我可以在你的代码中看到一些问题
CREATE OR REPLACE FUNCTION insert_val(IN val int) RETURNS VOID AS
$body$
BEGIN
FOR i IN 1..10 LOOP
insert into test (val)
values($23);
END LOOP;
END;
$body$ Language 'plpgsql' VOLATILE;
你错过了返回类型,你错过了AS
并且你忘了给in参数命名。
答案 1 :(得分:1)
你忘记了
RETURNS void AS
在第一行和第二行之间。
但这只会照顾语法。 $23
显然是错误的,因为没有23个函数参数。您的意思是$1
吗?