我是 数据库开发的新手,所以我对下面的例子有些疑问:
函数 f1()-< strong > language sql
create or replace function f1(istr varchar)
returns text as $$
select 'hello! '::varchar || istr;
$$ language sql;
函数 f2()-< strong > language 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')
:
ERROR: query 没有结果数据的目的地 提示: 如果要放弃 SELECT 的结果,请改为使用 PERFORM。 CONTEXT: PL/pgSQL 函数 f11(字符变化) SQL 语句第2行 错误
我想知道的区别和在哪些情况下,我应该使用 language sql
或 language plpgsql
。
任何有用的链接或答案有关的职能将不胜感激。