Я создал функцию Postgresql следующим образом.И пробовал разные способы запустить его, как указано в этом вопросе.Ни одна из работ.
CREATE OR REPLACE FUNCTION func_update_count(
updateType text,
userid text
)
RETURNS integer AS $$
DECLARE
_qry char(1024);
l_rows integer;
BEGIN
RAISE NOTICE 'Running ++';
IF updateType = '+' THEN
RAISE NOTICE 'Running ++';
UPDATE user_account SET tptcount = tptcount + 1 WHERE useridcode = '@userid';
ELSIF updateTYpe = '-' THEN
RAISE NOTICE 'Running --';
UPDATE user_account SET tptcount = tptcount - 1 WHERE useridcode = '@userid';
ELSE
RAISE NOTICE 'Not running any';
END IF;
GET DIAGNOSTICS l_rows = ROW_COUNT;
RETURN l_rows;
END;
$$
LANGUAGE 'plpgsql';
Пытался выполнить такую функцию:
Успешно работает:
UPDATE user_account SET tptcount = tptcount + 1 WHERE useridcode = 'chris_32';
=====
Ошибка просмотра: ERROR: prepared statement "func_update_count" does not exist
для запроса ниже.
EXECUTE func_update_count("+", "chris_32"); -- Does not work
=====
Ошибка просмотра: ERROR: column "+" does not exist
LINE 1: SELECT func_update_count("+", "chris_32"); -- Does not work
для запроса ниже
SELECT func_update_count("+", "chris_32"); -- Does not work