to_regprocedure()

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

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

to_regprocedure()PostgreSQL 9.4 中添加。

用法

to_regprocedure ( text ) → regprocedure

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

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

请注意,to_regprocedure() 需要指定过程或函数名称的完整参数列表。请参阅 to_regproc(),这是一个接受仅过程或函数名称的等效函数。

更改历史记录

示例

to_regprocedure() 的基本用法示例

postgres=# SELECT to_regprocedure('to_regprocedure(text)')::oid;
 to_regprocedure 
-----------------
            3479
(1 row)

区分名称相同但签名不同的函数

postgres=# CREATE FUNCTION foo()
             RETURNS INT
             LANGUAGE SQL
           AS $$
             SELECT 1;
           $$;
CREATE FUNCTION

postgres=# CREATE FUNCTION foo(integer)
             RETURNS INT
             LANGUAGE SQL
           AS $$
             SELECT 1 + $1;
           $$;
CREATE FUNCTION

postgres=# SELECT to_regprocedure('foo()')::oid;
 to_regprocedure 
-----------------
           16394
(1 row)

postgres=# SELECT to_regprocedure('foo(integer)')::oid;
 to_regprocedure 
-----------------
           16395
(1 row)

即使存在没有参数的匹配过程或函数,也必须在提供的名称后面加上一对括号。

postgres=# SELECT to_regprocedure('foo');
ERROR:  expected a left parenthesis

to_regproc() 接受没有参数的过程和函数名称,但如果使用提供的名称找到多个函数,则不会返回结果。

分类

系统函数

另请参阅

to_regproc()

反馈

提交关于 "to_regprocedure()" 的任何评论、建议或更正 此处