Search code examples
postgresqlpostgresql-9.6

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


I am creating a stored procedure in PostgreSQL 9.6 but I am getting syntax error. I am new to PostgreSQL. Are there more syntax errors in my code?

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;

And also: how can I call this procedure to test if its working ?

Thanks


Solution

  • Declare your function like this

    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;
    $$;
    

    Documentation : Create function