как вызвать функцию с несколькими аргументами — postgresql 11

#postgresql #plpgsql #stored-functions

Вопрос:

У меня есть функция, названная public.demoproc ниже.

 CREATE FUNCTION public.demoproc(i_schemaname character varying, i_objectname character varying, i_t_owner character varying) RETURNS text
    LANGUAGE plpgsql SECURITY DEFINER
    AS $
declare

v_statement text ;
begin

EXECUTE FORMAT('ALTER PROCEDURE %I.%I( owner to %I',i_schemaname,i_objectname,i_t_owner);


return FORMAT(' PROCEDURE "%I"."%I" Owner changed to "%I"',i_schemaname,i_objectname, i_t_owner );
END;
$;

 

Теперь я хочу назвать этот процесс, как показано ниже, с некоторыми аргументами.

например, имя функции(аргумент 1,аргумент 2…)

 select public.demoproc('schema_name', 'function_name', 'username');

 

Когда я выполняю приведенную выше команду успешно, и если у нас одна и та же функция, но другой аргумент, это приводит к ошибке.

Вопрос:- Не могли бы вы помочь мне,пожалуйста, как добавить код для нескольких аргументов, если имя функции одно и то же (оно может быть целым числом, именем и т.д.) В приведенном выше коде public.demoproc?

Спасибо.

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

1. Ваш select вызов функции (не процедуры!) является правильным. В чем заключается ошибка, которую вы получаете?

2. синтаксическая ошибка, я приближаюсь к ВЫПОЛНЕНИЮ

3. ПОДСКАЗКА: Укажите список аргументов, чтобы однозначно выбрать функцию. Я понимаю это..

4. Смотрите здесь Функцию Создания и раздел Overloading . Для plpgsql см. Полиморфные типы