Как я могу выполнить хранимую процедуру PostgreSQL

#sql #postgresql

Вопрос:

У меня следующий вопрос. Я создал хранимую процедуру в PostgreSQL и не могу ее выполнить, я пытался использовать exec , но получаю странную ошибку.

Вот моя сохраненная функция:

   DROP PROCEDURE IF EXISTS checkName();
CREATE PROCEDURE checkName(c_Name varchar)
      LANGUAGE plpgsql
AS $
declare notify_msg text := 0;
  BEGIN
    if(LENGTH(c_Name) > 41) THEN
         notify_msg = 'Restaurant name can not be longer than 41 characters.';
        END IF;
  END;
$;

COMMENT ON PROCEDURE checkName IS 'This procedure checks if the restaurant name is longer than 40 characters';
 

И вот как я пытался это выполнить:

 exec checkName('ThisIsTest');
 

Это ошибка, которую я получаю:

  ERROR: FEHLER:  Funktion »checkname« existiert bereits mit den selben Argumenttypen
 

Существует ли другой способ выполнения хранимой процедуры в PostgreSQL.

Комментарии:

1. postgresql.org/docs/current/sql-call.html

2. @a_horse_with_no_name Могу я спросить вас еще об одной вещи ?

Ответ №1:

Согласно документации, вы должны использовать

$ Вызов функции

https://www.postgresql.org/docs/11/sql-createprocedure.html