建立存储过程,模式名可以指定,也可以不指定,不指定则存放在当前模式下,如上面例子就没有指定模式名,则就存放在当前模式下,如下所示。
teledb=# select * from pg_namespace;
nspname | nspowner | nspacl
--------------------+----------+-------------------------------------
pg_toast | 10 |
pg_temp_1 | 10 |
pg_toast_temp_1 | 10 |
pg_catalog | 10 | {teledb=UC/teledb,=U/teledb}
public | 10 | {teledb=UC/teledb,=UC/teledb}
information_schema | 10 | {teledb=UC/teledb,=U/teledb}
(6 行记录)
teledb=# show search_path;
search_path
----------------
"$user",public
(1 行记录)
teledb=# select pg_namespace.nspname,pg_proc.prosrc from pg_proc,pg_namespace where
pg_proc.pronamespace=pg_namespace.oid and pg_proc.proname='proc_1';
nspname | prosrc
---------+---------------------------------
public | +
| begin +
| raise notice 'Hello,teledb_pg';+
| end; +
|
(1 row)
因为$user模式不存在,所以存在public模式下。