CREATE OR REPLACE FUNCTION outer() RETURNS void AS $outer$
DECLARE s text;
BEGIN
CREATE OR REPLACE FUNCTION inner() RETURNS text AS $inner$
BEGIN
RETURN 'inner';
END;
$inner$ language plpgsql;
SELECT inner() INTO s;
RAISE NOTICE '%', s;
DROP FUNCTION inner();
END;
$outer$ language plpgsql;
2条答案
按热度按时间dgiusagp1#
试试看:
字符串
在postgres 9.5
SELECT outer();
输出型
编辑:如果你不删除外部函数末尾的内部函数,它将对数据库的其余部分保持可见。
yhuiod9q2#
PLpgSQL不支持嵌套函数。模拟没有任何意义,并且是非生产性的(可能会对性能产生负面影响)。