to_regproc()

将过程/函数名转换为 OID 的函数

to_regproc() 是一个系统函数,用于将过程或函数名转换为其 OID

to_regproc()PostgreSQL 9.4 中添加。

用法

to_regproc ( text ) → regproc

to_regproc() 等同于使用 regproc 转换,但如果找不到匹配的过程或函数,则返回 NULL 而不是引发 ERROR

在评估提供的过程或函数名称时会考虑当前搜索路径。

请注意,to_regproc() 仅作用于过程或函数名称。如果存在同名但签名不同的函数,则返回 NULL。有关考虑相应过程或函数参数的等效函数,请参阅 to_regprocedure()

变更历史

示例

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)

分类

系统函数

另请参阅

to_regprocedure()

反馈

在此处 提交有关“to_regproc()”的任何评论、建议或更正