簡體   English   中英

程序不存在 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
)

程序 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM