30.26. routines

視圖 routines 包含目前資料庫中的所有函數。 只有目前用戶有訪問權限(可能是所有者或者有特定權限)的函數才顯示出來。

Table 30-24. routines 字串

名字資料類型描述
specific_catalogsql_identifier包含該函數的資料庫名字 (總是目前資料庫)
specific_schemasql_identifier包含該函數的模式名字
specific_namesql_identifier 函數的"具體名字"。這是一個在模式裡唯一標識該函數的名字, 即使函數的真是名字是重載的也如此。具體名字的格式沒有定義,我們應該只是用它和其它具體過程名的實例進行比較。
routine_catalogsql_identifier包含該函數的資料庫名稱(總是目前資料庫)
routine_schemasql_identifier包含該函數的模式名稱
routine_namesql_identifier函數的名稱(在重載的時候可能重複)
routine_typecharacter_data 總是 FUNCTION(未來可能會有其它類型的過程。)
module_catalogsql_identifier應用於一個PostgreSQL 裡沒有的特性
module_schemasql_identifier應用於一個PostgreSQL 裡沒有的特性
module_namesql_identifier應用於一個PostgreSQL 裡沒有的特性
udt_catalogsql_identifier應用於一個PostgreSQL 裡沒有的特性
udt_schemasql_identifier應用於一個PostgreSQL 裡沒有的特性
udt_namesql_identifier應用於一個PostgreSQL 裡沒有的特性
data_typecharacter_data 如果這是一個內置類型,則為函數的返回資料類型, 如果是某種數組,則為 ARRAY(這個時候, 參閱 element_types),否則就是 USER-DEFINED (這種情況下,類型在 type_udt_name 和相關字串中標識)。
character_maximum_lengthcardinal_number總是為空,因為這個訊息並不應用於PostgreSQL 裡的返回資料類型
character_octet_lengthcardinal_number總是為空,因為這個訊息並不應用於PostgreSQL 裡的返回資料類型
character_set_catalogsql_identifier應用於一個PostgreSQL 裡沒有的特性
character_set_schemasql_identifier應用於一個PostgreSQL 裡沒有的特性
character_set_namesql_identifier應用於一個PostgreSQL 裡沒有的特性
collation_catalogsql_identifier應用於一個PostgreSQL 裡沒有的特性
collation_schemasql_identifier應用於一個PostgreSQL 裡沒有的特性
collation_namesql_identifier應用於一個PostgreSQL 裡沒有的特性
numeric_precisioncardinal_number總是為空,因為這個訊息並不應用於PostgreSQL 裡的返回資料類型
numeric_precision_radixcardinal_number總是為空,因為這個訊息並不應用於PostgreSQL 裡的返回資料類型
numeric_scalecardinal_number總是為空,因為這個訊息並不應用於PostgreSQL 裡的返回資料類型
datetime_precisioncardinal_number總是為空,因為這個訊息並不應用於PostgreSQL 裡的返回資料類型
interval_typecharacter_data總是為空,因為這個訊息並不應用於PostgreSQL 裡的返回資料類型
interval_precisioncharacter_data總是為空,因為這個訊息並不應用於PostgreSQL 裡的返回資料類型
type_udt_catalogsql_identifier 函數的返回資料類型定義所在的資料庫名稱 (總是目前資料庫)
type_udt_schemasql_identifier 函數的返回資料類型定義所在的模式名稱
type_udt_namesql_identifier 該函數的返回資料類型
scope_catalogsql_identifier應用於一個PostgreSQL 裡沒有的特性
scope_schemasql_identifier應用於一個PostgreSQL 裡沒有的特性
scope_namesql_identifier應用於一個PostgreSQL 裡沒有的特性
maximum_cardinalitycardinal_number總是為空,因為PostgreSQL 的數組總是有無限的最大勢(維數)
dtd_identifiersql_identifier 一個這個函數返回的資料類型的資料類型描述符的標識符, 在所有屬於這個函數的資料類型描述符中唯一。這個描述符主要用於和其它這樣的標識符進行連接。 (標識符具體的格式沒有定義,並且不保證在將來的版本中保持相同。)
routine_bodycharacter_data 如果函數是 SQL 函數,那麼 SQL,否則是 EXTERNAL
routine_definitioncharacter_data 函數的原始碼文本(如果目前用戶不是函數所有者,則為空)。 (根據 SQL 標準,這個字串只又在 routine_bodySQL 的時候才使用, 但是在 PostgreSQL 裡,這個字串將包含建立函數的時候所聲明的任何源文本。)
external_namecharacter_data 如果這個函數是一個 C 函數,那麼是函數的外部名字(鏈接符號); 否則為空。(這個字串的數值和 routine_definition 裡顯示的數值相同。)
external_languagecharacter_data書寫這個函數使用的語言
parameter_stylecharacter_data 總是 GENERAL(SQL 標準定義了其它參數類型, 那些類型不適用於PostgreSQL。)
is_deterministiccharacter_data 如果這個函數聲明為不變的(immutable)(在 SQL 標準裡叫確定的(deterministic)), 那麼是 YES,否則是 NO。 (在PostgreSQL 裡您無法透過訊息模式查詢其它可用的易失性級別。)
sql_data_accesscharacter_data 總是 MODIFIES,意思是這個函數可能修改 SQL 資料。 這個訊息對PostgreSQL 沒啥作用。
is_null_callcharacter_data 如果函數任意輸入參數為空,函數則自動返回空,則為 YES, 否則為 NO
sql_pathcharacter_data應用於一個PostgreSQL 裡沒有的特性
schema_level_routinecharacter_data 總是 YES(對應的方面是一個用戶定義類型的方法, 這是一個PostgreSQL 裡沒有的特性。)
max_dynamic_result_setscardinal_number應用於一個PostgreSQL 裡沒有的特性
is_user_defined_castcharacter_data應用於一個PostgreSQL 裡沒有的特性
is_implicitly_invocablecharacter_data應用於一個PostgreSQL 裡沒有的特性
security_typecharacter_data 如果這個函數以目前用戶的權限執行,則為 INVOKER, 如果函數以定義它的用戶的權限執行,則為 DEFINER
to_sql_specific_catalogsql_identifier應用於一個PostgreSQL 裡沒有的特性
to_sql_specific_schemasql_identifier應用於一個PostgreSQL 裡沒有的特性
to_sql_specific_namesql_identifier應用於一個PostgreSQL 裡沒有的特性
as_locatorcharacter_data應用於一個PostgreSQL 裡沒有的特性