程序不存在 PostgreSQL
Procedure does not exist PostgreSQL
我创建了插入新记录的过程
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',
0,
1
)
procedure savestudent(unknown, unknown, unknown, unknown, integer, integer) does not exist
是什么原因造成的?
尝试像这样调用过程:
CALL "saveStudent" (
'It'::character varying,
'is'::character varying,
'Test'::character varying,
'2019-09-23'::date,
0,
1
);
对所有标识符使用双引号只会让您的生活更艰难。这意味着您在引用它们时需要使用双引号,因为双引号强制执行字符串的特定大小写。这很麻烦并且容易出错(您会在此处看到)。另外,如果您编写大量代码,它会耗尽您的双引号密钥。
Here 是一个 db<>fiddle。请注意,这仍然会产生错误,但错误来自正在执行的过程。
我创建了插入新记录的过程
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',
0,
1
)
procedure savestudent(unknown, unknown, unknown, unknown, integer, integer) does not exist
是什么原因造成的?
尝试像这样调用过程:
CALL "saveStudent" (
'It'::character varying,
'is'::character varying,
'Test'::character varying,
'2019-09-23'::date,
0,
1
);
对所有标识符使用双引号只会让您的生活更艰难。这意味着您在引用它们时需要使用双引号,因为双引号强制执行字符串的特定大小写。这很麻烦并且容易出错(您会在此处看到)。另外,如果您编写大量代码,它会耗尽您的双引号密钥。
Here 是一个 db<>fiddle。请注意,这仍然会产生错误,但错误来自正在执行的过程。