dattaprasaddhuri Ответов: 1

Ошибка при создании функции postgresql


Я пытаюсь создать в PostgreSQL функция, но она дает следующую ошибку:
ERROR:  syntax error at or near ";"
LINE 16: end;
            ^
********** Error **********

ERROR: syntax error at or near ";"
SQL state: 42601
Character: 308


Что я уже пробовал:

create or replace function prcUDF(p_col1 integer,p_col2 text,p_col3 text)
returns void LANGUAGE 'plpgsql' as 
$$
begin
if(p_col2='1')
then
	UPDATE tblA set COLUMN12=p_col3 WHERE COLUMN0=p_col1;
ELSE IF (p_col2='2')
then
		UPDATE tblI set COLUMN11=p_col3 WHERE COLUMN0=p_col1;
end if;
	
end;
$$

RickZeeland

вы используете pgadmin или psql ?

1 Ответов

Рейтинг:
0

RickZeeland

Кажется, есть проблема с "else if", я думаю, что это должно выглядеть так:

CREATE FUNCTION public.test1(IN p_col1 integer, IN p_col2 text, IN p_col3 text) RETURNS void AS
$BODY$begin
if(p_col2='1') then
	UPDATE tblA set COLUMN12=p_col3 WHERE COLUMN0=p_col1;
end if;
if (p_col2='2') then
	UPDATE tblI set COLUMN11=p_col3 WHERE COLUMN0=p_col1;
end if;
end;
$BODY$
LANGUAGE plpgsql;