please help me to solve this error following is my code and after below my code error also written
CREATE OR REPLACE FUNCTION DATEADD (interval VARCHAR(4000), adding INT, entry_date TIMESTAMP(0))
RETURN TIMESTAMP(0) as
$body$
declare
result TIMESTAMP(0);
BEGIN
If (UPPER(interval) = 'D') OR (UPPER(interval) = 'Y') OR (UPPER(interval) ='W') OR (UPPER(interval) = 'DD') OR (UPPER(interval) = 'DDD') OR (UPPER(interval) = 'DAY') THEN result := entry_date + adding; ELSIF (UPPER(interval) = 'WW') OR (UPPER(interval) = 'IW') OR (UPPER(interval) = 'WEEK') THEN result := entry_date + (adding * 7); ELSIF (UPPER(interval) = 'YYYY') OR (UPPER(interval) = 'YEAR') THEN result := add_months(entry_date,adding * 12); ELSIF (UPPER(interval) = 'Q') OR (UPPER(interval) = 'QUARTER')
THEN result := add_months(entry_date,adding * 3);
ELSIF(UPPER(interval)= 'M') OR (UPPER(interval) = 'MM') OR (UPPER(interval) = 'MONTH') THEN
result :=add_months(entry_date,adding);
ELSIF (UPPER(interval) = 'H') OR (UPPER(interval) = 'HH') OR (UPPER(interval) = 'HOUR') THEN
result := entry_date+ (adding /24);
ELSIF (UPPER(interval) = 'N') OR (UPPER(interval) = 'MI') OR (UPPER(interval) = 'MINUTE') THEN
result := entry_date+ (adding /24/60);
ELSIF (UPPER(interval) = 'S') OR (UPPER(interval) = 'SS') OR (UPPER(interval) = 'SECOND') THEN
result := entry_date + (adding /24/60/60);
END IF;
RETURN result;
exception when others then
raise_application_error('-20000',sqlerrm);
end;
$body$
LANGUAGE plpgsql;
ERROR: syntax error at or near "VARCHAR" LINE 1: CREATE OR REPLACE FUNCTION DATEADD (interval VARCHAR(4000), ...