to_regproc()
是一个系统函数,用于将过程或函数名称转换为其 OID。
to_regproc()
在 PostgreSQL 9.4 中添加。
用法
to_regproc (text
) →regproc
to_regproc()
等效于使用 regproc 转换,但如果未找到匹配的过程或函数,则返回 NULL
而不是引发 ERROR
。
在评估提供的过程或函数名称时,会考虑当前搜索路径。
请注意,to_regproc()
仅对过程或函数名称进行操作。如果存在名称相同但签名不同的函数,则返回 NULL
。有关考虑相应过程或函数参数的等效函数,请参见 to_regprocedure()
。
更改历史记录
- PostgreSQL 16
- PostgreSQL 9.4
- 添加 (提交 0886fc6a)
示例
to_regproc()
的基本用法示例
postgres=# SELECT to_regproc('to_regproc')::oid; to_regproc ------------ 3494 (1 row)
如果函数“重载”,即多个版本的函数具有相同的名称但参数形式不同,则返回 NULL
postgres=# CREATE FUNCTION foo() RETURNS INT LANGUAGE SQL AS $$ SELECT 1; $$; CREATE FUNCTION postgres=# SELECT to_regproc('foo')::oid; to_regproc ------------ 17536 (1 row) postgres=# CREATE FUNCTION foo(integer) RETURNS INT LANGUAGE SQL AS $$ SELECT 1 + $1; $$; CREATE FUNCTION postgres=# SELECT to_regproc('foo')::oid; to_regproc ------------ (1 row)
参考文献
- PostgreSQL 文档: 系统目录信息函数