作者:robable004_96978 | 来源:互联网 | 2023-10-10 18:55
我已经创建了插入新记录的过程
CREATE OR REPLACE PROCEDURE PUBLIC."saveStudent"(
"fName_val" character varying,"sname_val" character varying,patr_val character varying,"DoB_val" DATE,GROUP_ID INTEGER,instructor_id INTEGER)
LANGUAGE 'plpgsql'
AS $BODY$ BEGIN
INSERT INTO PUBLIC.student(
"fName","sname","patronymic","DoB","group",instructor)
VALUES (fName_val,sname_val,patr_val,DoB_val,GROUP_ID,instructor_id);
END; $BODY$
但是当我尝试调用它时会出错
CALL public.saveStudent(
'It','is','Test','23/09/1999',1
)
过程savestudent(未知,未知,未知,未知,整数,整数)不存在
是什么原因造成的?
尝试像这样调用过程:
CALL "saveStudent" (
'It'::character varying,'is'::character varying,'Test'::character varying,'2019-09-23'::date,1
);
通过对所有标识符使用双引号使您的生活更加艰难。这意味着您在引用双引号时需要使用双引号,因为双引号会强制执行字符串的特定情况。这很麻烦并且容易出错(您将在此处看到)。另外,如果您编写大量代码,它将耗尽双引号键。
Here是db 小提琴。请注意,这仍然会生成错误,但是会导致正在执行的过程出错。