存储过程与函数不能同名
 
                  更新时间 2025-02-14 10:22:06
                 
 
                    最近更新时间: 2025-02-14 10:22:06
                  
 本页介绍天翼云TeleDB数据库创建一个与函数同名的存储过程的错误提示和替换方案。
 如创建一个与函数同名的存储过程会提示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=#