存儲過程與函數不能同名
更新時間 2025-02-05 09:36:48
最近(jin)更新時間(jian): 2025-02-05 09:36:48
分享文章(zhang)
本頁介紹天翼云TeleDB數(shu)據庫創建一(yi)個與函(han)數(shu)同名的存(cun)儲過(guo)程的錯誤提示和替(ti)換方案。
如創建一個(ge)與函(han)數同名的存儲過程會提示function xxx already exists with same argument types。
teledb=# CREATE OR REPLACE FUNCTION proc_1() RETURNS void AS
$$
begin
raise notice 'Hello teledb_pg';
end;
$$
LANGUAGE PLPGSQL;
CREATE FUNCTION
teledb=# CREATE PROCEDURE proc_1() AS
$$
begin
raise notice 'Hello teledb_pg';
end;
$$
LANGUAGE PLPGSQL;
ERROR: function "proc_1" already exists with same argument types
teledb=#
如果要替換,則提示。
teledb=# CREATE OR REPLACE PROCEDURE proc_1() AS
$$
begin
raise notice 'Hello teledb_pg';
end;
$$
LANGUAGE PLPGSQL;
ERROR: cannot change routine kind
DETAIL: "proc_1" is a function.
teledb=#