我对PostgreSQL很陌生,我想知道这样的事情是否存在......
我看到了一些讨论,但没有具体的......
谢谢!
答案 0 :(得分:5)
不,没有等价物。
唯一远程类似的事情是为每个"包创建一个模式"并将一个包的所有功能放入该模式中。这样你至少可以得到包给你的命名空间。
这当然不会给你包私有函数或包广泛变量。
答案 1 :(得分:0)
如在postgresql之前所写,没有软件包。
带有名称空间的示例。可以将其放在单个 sql 文件中。
可以类似地添加其他方法。
--drop function if exists pack_exmpl.get_name(bigint);
--drop function if exists pack_exmpl.get_abbr(bigint);
--drop schema if exists pack_exmpl;
drop schema if exists pack_exmpl cascade;
create schema pack_exmpl;
create or replace function pack_exmpl.get_name(p_id bigint)
returns varchar as $$
declare
l_retval varchar;
begin
select name into l_retval from example_table where id = p_id;
return l_retval;
end;
$$ language plpgsql IMMUTABLE;
create or replace function pack_exmpl.get_abbr(p_id bigint)
returns varchar as $$
declare
l_retval varchar;
begin
select abbr into l_retval from example_table where id = p_id;
return l_retval;
end;
$$ language plpgsql IMMUTABLE;