Разница между языком sql и языком plpgsql в функциях PostgreSQL

Я очень новичок вРазработка базы данных поэтому у меня есть некоторые сомнения относительно моего следующего примера:

Функция f1 () -язык sql

 create or replace function f1(istr  varchar) returns text as $ 
 select 'hello! '::varchar || istr;
 $ language sql;

Функция f2 () -язык plpgsql

 create  or replace function f2(istr  varchar)
 returns text as $ 
 begin select 'hello! '::varchar || istr; end;
 $ language plpgsql;

И то и другоефункции можно назвать какselect f1('world') или жеselect f2('world').

Если я позвонюselect f1('world') выход будет:

`hello! world`

А такжевыход заselect f2('world'):

ОШИБКА: у запроса нет места назначения для данных результата. СОВЕТ: Если вы хотите отменить результаты SELECT, используйте вместо этого PERFORM. КОНТЕКСТ: функция PL / pgSQL f11 (с изменением символов) строка 2 в операторе SQL****** ошибка******

Я хочу знать разницу и в каких ситуациях я должен использоватьlanguage sql или жеlanguage plpgsql.

Любая полезная ссылка или ответы относительно функций будут высоко оценены.

Ответы на вопрос(3)

Ваш ответ на вопрос