PostgreSQL 存储过程中 "DECLARE" 处或附近的语法错误

Syntax error at or near "DECLARE" in PostgreSQL stored procedure

我正在 PostgreSQL 9.6 中创建存储过程,但出现语法错误。我是 PostgreSQL 的新手。我的代码中是否存在更多语法错误?

CREATE OR REPLACE FUNCTION DBO.Proc_Activity()  
DECLARE
a_sActivityName TYPE  VARCHAR(30); 
a_sActivityDescription TYPE  VARCHAR(2000);  
a_sUserName TYPE  VARCHAR(30);  
a_sErrDesc TYPE  VARCHAR(500);  
   
RETURNS VOID AS $$  
BEGIN  
       
 insert into Activity_Log (sActivityName,sActivityDescription,sError,dCreatedDate,sCreatedBy)values( a_sActivityName ,a_sActivityDescription, a_sErrDesc ,NOW(),a_sUserName)  
   
END;
$$ LANGUAGE plpgsql;

还有:我如何调用这个过程来测试它是否有效?

谢谢

像这样声明你的函数

CREATE OR REPLACE FUNCTION Proc_Activity()
RETURNS VOID
LANGUAGE plpgsql
AS $$
DECLARE
    a_sActivityName VARCHAR; 
    a_sActivityDescription VARCHAR;  
    a_sUserName VARCHAR;  
    a_sErrDesc VARCHAR;  
BEGIN  
 insert into Activity_Log (sActivityName,sActivityDescription,sError,dCreatedDate,sCreatedBy)values( a_sActivityName ,a_sActivityDescription, a_sErrDesc ,NOW(),a_sUserName);  
END;
$$;

文档:Create function