[英]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
)
程序 savestudent(unknown,unknown,unknown,unknown,integer,integer) 不存在
是什么原因造成的?
嘗試像這樣調用該過程:
CALL "saveStudent" (
'It'::character varying,
'is'::character varying,
'Test'::character varying,
'2019-09-23'::date,
0,
1
);
通過對所有標識符使用雙引號,您只會讓您的生活更加艱難。 這意味着在引用它們時需要使用雙引號,因為雙引號強制執行字符串的特定大小寫。 這很麻煩並且容易出錯(你在這里看到)。 另外,如果您編寫大量代碼,它會耗盡您的雙引號鍵。
這是一個 db<>fiddle。 請注意,這仍然會產生錯誤,但會產生來自正在執行的過程的錯誤。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.