PostgreSQL 9.4.4 中文手册
上一页 | 上一级 | 章 34. 信息模式 | 下一页

# 34.40. `routines`

视图`routines`包含当前数据库中的所有函数。 只有当前用户有访问权限（可能是所有者或者有特定权限）的函数才显示出来。

表 34-38. `routines` 字段

名字 | 数据类型 | 描述
--- | --- | ---
`specific_catalog` | `sql_identifier` | 包含该函数的数据库名称（总是当前数据库）
`specific_schema` | `sql_identifier` | 包含该函数的模式名称
`specific_name` | `sql_identifier` | 函数的"specific name"（具体名字）。这是一个在模式里唯一标识该函数的名字， 即使函数的真是名字是重载的也如此。具体名字的格式没有定义， 我们应该只是用它和其它具体过程名的实例进行比较。
`routine_catalog` | `sql_identifier` | 包含该函数的数据库名称（总是当前数据库）
`routine_schema` | `sql_identifier` | 包含该函数的模式名称
`routine_name` | `sql_identifier` | 函数的名称（在重载的时候可能重复）
`routine_type` | `character_data` | 总是`FUNCTION`（未来可能会有其它过程的类型。）
`module_catalog` | `sql_identifier` | 应用于一个PostgreSQL里没有的特性
`module_schema` | `sql_identifier` | 应用于一个PostgreSQL里没有的特性
`module_name` | `sql_identifier` | 应用于一个PostgreSQL里没有的特性
`udt_catalog` | `sql_identifier` | 应用于一个PostgreSQL里没有的特性
`udt_schema` | `sql_identifier` | 应用于一个PostgreSQL里没有的特性
`udt_name` | `sql_identifier` | 应用于一个PostgreSQL里没有的特性
`data_type` | `character_data` | 如果这是一个内置类型，则为函数的返回数据类型，或者如果是某种数组， 则为`ARRAY`（这个时候，参阅视图`element_types`）， 否则就是`USER-DEFINED`（这种情况下， 类型在`type_udt_name`和相关字段中标识）。
`character_maximum_length` | `cardinal_number` | 总是为空，因为这个信息并不应用于PostgreSQL里的返回数据类型
`character_octet_length` | `cardinal_number` | 总是为空，因为这个信息并不应用于PostgreSQL里的返回数据类型
`character_set_catalog` | `sql_identifier` | 应用于一个PostgreSQL里没有的特性
`character_set_schema` | `sql_identifier` | 应用于一个PostgreSQL里没有的特性
`character_set_name` | `sql_identifier` | 应用于一个PostgreSQL里没有的特性
`collation_catalog` | `sql_identifier` | 总是为空，因为这个信息并不应用于PostgreSQL里的返回数据类型
`collation_schema` | `sql_identifier` | 总是为空，因为这个信息并不应用于PostgreSQL里的返回数据类型
`collation_name` | `sql_identifier` | 总是为空，因为这个信息并不应用于PostgreSQL里的返回数据类型
`numeric_precision` | `cardinal_number` | 总是为空，因为这个信息并不应用于PostgreSQL里的返回数据类型
`numeric_precision_radix` | `cardinal_number` | 总是为空，因为这个信息并不应用于PostgreSQL里的返回数据类型
`numeric_scale` | `cardinal_number` | 总是为空，因为这个信息并不应用于PostgreSQL里的返回数据类型
`datetime_precision` | `cardinal_number` | 总是为空，因为这个信息并不应用于PostgreSQL里的返回数据类型
`interval_type` | `character_data` | 总是为空，因为这个信息并不应用于PostgreSQL里的返回数据类型
`interval_precision` | `cardinal_number` | 总是为空，因为这个信息并不应用于PostgreSQL里的返回数据类型
`type_udt_catalog` | `sql_identifier` | 函数的返回数据类型定义所在的数据库名称（总是当前数据库）
`type_udt_schema` | `sql_identifier` | 函数的返回数据类型定义所在的模式名称
`type_udt_name` | `sql_identifier` | 该函数的返回数据类型的名称
`scope_catalog` | `sql_identifier` | 应用于一个PostgreSQL里没有的特性
`scope_schema` | `sql_identifier` | 应用于一个PostgreSQL里没有的特性
`scope_name` | `sql_identifier` | 应用于一个PostgreSQL里没有的特性
`maximum_cardinality` | `cardinal_number` | 总是为空，因为数组在PostgreSQL中总是有无限的最大维数
`dtd_identifier` | `sql_identifier` | 一个这个函数返回的数据类型的数据类型描述符的标识符， 在所有属于这个函数的数据类型描述符中唯一。这个描述符主要用于和其它这样的标识符实例进行连接。 （标识符具体的格式没有定义，并且不保证在将来的版本中保持相同。）
`routine_body` | `character_data` | 如果函数是 SQL 函数，那么`SQL`，否则是`EXTERNAL`。
`routine_definition` | `character_data` | 函数的源代码文本（如果当前用户不是函数所有者，则为空）。（根据 SQL 标准， 这个字段只又在`routine_body`是`SQL`的时候才使用， 但是在PostgreSQL里，这个字段将包含创建函数的时候所声明的任何源文本。）
`external_name` | `character_data` | 如果这个函数是一个 C 函数，那么是函数的外部名字（链接符号）；否则为空。 （这个字段的数值和`routine_definition`里显示的数值相同。）
`external_language` | `character_data` | 书写这个函数使用的语言
`parameter_style` | `character_data` | 总是`GENERAL`（SQL标准定义了其它参数类型， 那些类型不适用于PostgreSQL。）
`is_deterministic` | `yes_or_no` | 如果这个函数声明为不变的(immutable)（在 SQL 标准里叫确定的(deterministic)）， 那么是`YES`，否则是`NO`。 （在PostgreSQL里你无法通过信息模式查询其它可用的易失性级别。）
`sql_data_access` | `character_data` | 总是`MODIFIES`，意思是这个函数可能修改 SQL 数据。 这个信息对PostgreSQL没啥作用。
`is_null_call` | `yes_or_no` | 如果当函数任意输入参数为空时函数自动返回空，则为`YES`，否则为`NO`。
`sql_path` | `character_data` | 应用于一个PostgreSQL里没有的特性
`schema_level_routine` | `yes_or_no` | 总是`YES`（相反的是一个用户定义类型的方法， 这是一个PostgreSQL里没有的特性。）
`max_dynamic_result_sets` | `cardinal_number` | 应用于一个PostgreSQL里没有的特性
`is_user_defined_cast` | `yes_or_no` | 应用于一个PostgreSQL里没有的特性
`is_implicitly_invocable` | `yes_or_no` | 应用于一个PostgreSQL里没有的特性
`security_type` | `character_data` | 如果这个函数以当前用户的权限运行，则为`INVOKER`， 如果函数以定义它的用户的权限运行，则为`DEFINER`。
`to_sql_specific_catalog` | `sql_identifier` | 应用于一个PostgreSQL里没有的特性
`to_sql_specific_schema` | `sql_identifier` | 应用于一个PostgreSQL里没有的特性
`to_sql_specific_name` | `sql_identifier` | 应用于一个PostgreSQL里没有的特性
`as_locator` | `yes_or_no` | 应用于一个PostgreSQL里没有的特性
`created` | `time_stamp` | 应用于一个PostgreSQL里没有的特性
`last_altered` | `time_stamp` | 应用于一个PostgreSQL里没有的特性
`new_savepoint_level` | `yes_or_no` | 应用于一个PostgreSQL里没有的特性
`is_udt_dependent` | `yes_or_no` | 当前总是`NO`。`YES`适用于 PostgreSQL里没有的一个特性。
`result_cast_from_data_type` | `character_data` | 应用于一个PostgreSQL里没有的特性
`result_cast_as_locator` | `yes_or_no` | 应用于一个PostgreSQL里没有的特性
`result_cast_char_max_length` | `cardinal_number` | 应用于一个PostgreSQL里没有的特性
`result_cast_char_octet_length` | `character_data` | 应用于一个PostgreSQL里没有的特性
`result_cast_char_set_catalog` | `sql_identifier` | 应用于一个PostgreSQL里没有的特性
`result_cast_char_set_schema` | `sql_identifier` | 应用于一个PostgreSQL里没有的特性
`result_cast_char_set_name` | `sql_identifier` | 应用于一个PostgreSQL里没有的特性
`result_cast_collation_catalog` | `sql_identifier` | 应用于一个PostgreSQL里没有的特性
`result_cast_collation_schema` | `sql_identifier` | 应用于一个PostgreSQL里没有的特性
`result_cast_collation_name` | `sql_identifier` | 应用于一个PostgreSQL里没有的特性
`result_cast_numeric_precision` | `cardinal_number` | 应用于一个PostgreSQL里没有的特性
`result_cast_numeric_precision_radix` | `cardinal_number` | 应用于一个PostgreSQL里没有的特性
`result_cast_numeric_scale` | `cardinal_number` | 应用于一个PostgreSQL里没有的特性
`result_cast_datetime_precision` | `character_data` | 应用于一个PostgreSQL里没有的特性
`result_cast_interval_type` | `character_data` | 应用于一个PostgreSQL里没有的特性
`result_cast_interval_precision` | `cardinal_number` | 应用于一个PostgreSQL里没有的特性
`result_cast_type_udt_catalog` | `sql_identifier` | 应用于一个PostgreSQL里没有的特性
`result_cast_type_udt_schema` | `sql_identifier` | 应用于一个PostgreSQL里没有的特性
`result_cast_type_udt_name` | `sql_identifier` | 应用于一个PostgreSQL里没有的特性
`result_cast_scope_catalog` | `sql_identifier` | 应用于一个PostgreSQL里没有的特性
`result_cast_scope_schema` | `sql_identifier` | 应用于一个PostgreSQL里没有的特性
`result_cast_scope_name` | `sql_identifier` | 应用于一个PostgreSQL里没有的特性
`result_cast_maximum_cardinality` | `cardinal_number` | 应用于一个PostgreSQL里没有的特性
`result_cast_dtd_identifier` | `sql_identifier` | 应用于一个PostgreSQL里没有的特性

上一页 | 起始页 | 下一页
`routine_privileges` | 上一级 | `schemata`