A visão routines contém todas as funções no banco de dados corrente. Somente são mostradas as funções que o usuário corrente pode acessar (seja por ser o dono ou por possuir algum privilégio). [1] [2]
Tabela 30-24. Colunas de routines
| Nome | Tipo de dado | Descrição |
|---|---|---|
| specific_catalog | sql_identifier | Nome do banco de dados que contém a função (sempre o banco de dados corrente) |
| specific_schema | sql_identifier | Nome do esquema que contém a função |
| specific_name | sql_identifier | O "nome específico" da função. É um nome que identifica unicamente a função no esquema, mesmo quando o nome verdadeiro da função é sobrecarregado. O formato do nome específico não é definido, devendo ser utilizado apenas para comparar com outras instâncias de nomes específicos de rotinas. |
| routine_catalog | sql_identifier | Nome do banco de dados que contém a função (sempre o banco de dados corrente) |
| routine_schema | sql_identifier | Nome do esquema que contém a função |
| routine_name | sql_identifier | Nome da função (pode ser duplicado em caso de sobrecarga) |
| routine_type | character_data | Sempre FUNCTION (No futuro poderão existir outros tipos de rotina). |
| module_catalog | sql_identifier | Se aplica a uma funcionalidade não disponível no PostgreSQL |
| module_schema | sql_identifier | Se aplica a uma funcionalidade não disponível no PostgreSQL |
| module_name | sql_identifier | Se aplica a uma funcionalidade não disponível no PostgreSQL |
| udt_catalog | sql_identifier | Se aplica a uma funcionalidade não disponível no PostgreSQL |
| udt_schema | sql_identifier | Se aplica a uma funcionalidade não disponível no PostgreSQL |
| udt_name | sql_identifier | Se aplica a uma funcionalidade não disponível no PostgreSQL |
| data_type | character_data | Tipo de dado retornado pela função, se for um tipo nativo, ou ARRAY se for uma matriz (neste caso deve ser vista a visão element_types), senão USER-DEFINED (neste caso o tipo é identificado em type_udt_name e nas colunas associadas). |
| character_maximum_length | cardinal_number | Sempre nulo, uma vez que esta informação não se aplica a tipos de dado retornados no PostgreSQL |
| character_octet_length | cardinal_number | Sempre nulo, uma vez que esta informação não se aplica a tipos de dado retornados no PostgreSQL |
| character_set_catalog | sql_identifier | Se aplica a uma funcionalidade não disponível no PostgreSQL |
| character_set_schema | sql_identifier | Se aplica a uma funcionalidade não disponível no PostgreSQL |
| character_set_name | sql_identifier | Se aplica a uma funcionalidade não disponível no PostgreSQL |
| collation_catalog | sql_identifier | Se aplica a uma funcionalidade não disponível no PostgreSQL |
| collation_schema | sql_identifier | Se aplica a uma funcionalidade não disponível no PostgreSQL |
| collation_name | sql_identifier | Se aplica a uma funcionalidade não disponível no PostgreSQL |
| numeric_precision | cardinal_number | Sempre nulo, uma vez que esta informação não se aplica a tipos de dado retornados no PostgreSQL |
| numeric_precision_radix | cardinal_number | Sempre nulo, uma vez que esta informação não se aplica a tipos de dado retornados no PostgreSQL |
| numeric_scale | cardinal_number | Sempre nulo, uma vez que esta informação não se aplica a tipos de dado retornados no PostgreSQL |
| datetime_precision | cardinal_number | Sempre nulo, uma vez que esta informação não se aplica a tipos de dado retornados no PostgreSQL |
| interval_type | character_data | Sempre nulo, uma vez que esta informação não se aplica a tipos de dado retornados no PostgreSQL |
| interval_precision | character_data | Sempre nulo, uma vez que esta informação não se aplica a tipos de dado retornados no PostgreSQL |
| type_udt_catalog | sql_identifier | Nome do banco de dados onde o tipo de dado retornado pela função está definido (sempre o banco de dados corrente) |
| type_udt_schema | sql_identifier | Nome do esquema onde o tipo de dado retornado pela função está definido |
| type_udt_name | sql_identifier | Nome do tipo de dado retornado pela função |
| scope_catalog | sql_identifier | Se aplica a uma funcionalidade não disponível no PostgreSQL |
| scope_schema | sql_identifier | Se aplica a uma funcionalidade não disponível no PostgreSQL |
| scope_name | sql_identifier | Se aplica a uma funcionalidade não disponível no PostgreSQL |
| maximum_cardinality | cardinal_number | Sempre nulo, porque as matrizes sempre possuem uma cardinalidade máxima não definida no PostgreSQL |
| dtd_identifier | sql_identifier | O identificador do descritor do tipo de dado retornado pela função, único entre os descritores de tipo de dado que pertencem à função. A utilidade principal é para fazer junção com outras instâncias destes identificadores (O formato específico do identificador não é definido, e também não há garantia que permaneça o mesmo nas versões futuras). (dtd = descritor do tipo de dado - N. do T.) |
| routine_body | character_data | Se a função for uma função SQL então SQL, senão EXTERNAL. |
| routine_definition | character_data | O texto fonte da função (nulo se o usuário corrente não for o dono da função) (De acordo com o padrão SQL, esta coluna somente se aplica se routine_body for SQL, mas no PostgreSQL contém qualquer que seja o texto fonte especificado quando a função foi criada). |
| external_name | character_data | Se a função for uma função C, então o nome externo (símbolo de ligação) da função; senão nulo (Acaba sendo o mesmo valor mostrado em routine_definition). |
| external_language | character_data | A linguagem na qual a função foi escrita |
| parameter_style | character_data | Sempre GENERAL (O padrão SQL define outros estilos de parâmetro, que não estão disponíveis no PostgreSQL). |
| is_deterministic | character_data | Se a função for declarada como imutável (chamado de determinística no padrão SQL) então YES, senão NO (Não é possível consultar os demais níveis de volatilidade disponíveis no PostgreSQL através do esquema de informações). |
| sql_data_access | character_data | Sempre MODIFIES, significando que a função possivelmente modifica dados SQL. Esta informação não é útil para o PostgreSQL. |
| is_null_call | character_data | Se a função retorna nulo automaticamente quando um de seus argumentos é nulo então YES, senão NO. |
| sql_path | character_data | Se aplica a uma funcionalidade não disponível no PostgreSQL |
| schema_level_routine | character_data | Sempre YES (O oposto seria um método de um tipo definido pelo usuário, que é uma funcionalidade não disponível no PostgreSQL.) |
| max_dynamic_result_sets | cardinal_number | Se aplica a uma funcionalidade não disponível no PostgreSQL |
| is_user_defined_cast | character_data | Se aplica a uma funcionalidade não disponível no PostgreSQL |
| is_implicitly_invocable | character_data | Se aplica a uma funcionalidade não disponível no PostgreSQL |
| security_type | character_data | Se a função executa com os privilégios do usuário corrente, então INVOKER, se a função executa com os privilégios do usuário que a definiu então DEFINER. |
| to_sql_specific_catalog | sql_identifier | Se aplica a uma funcionalidade não disponível no PostgreSQL |
| to_sql_specific_schema | sql_identifier | Se aplica a uma funcionalidade não disponível no PostgreSQL |
| to_sql_specific_name | sql_identifier | Se aplica a uma funcionalidade não disponível no PostgreSQL |
| as_locator | character_data | Se aplica a uma funcionalidade não disponível no PostgreSQL |
| [1] |
ROUTINES — visão — Identifica as rotinas chamadas pelo SQL neste catálogo acessíveis a um determinado usuário ou grupo. (ISO-ANSI Working Draft) Information and Definition Schemas (SQL/Schemata), ISO/IEC 9075-11:2003 (E) (N. do T.) |
| [2] |
A visão ROUTINES contém uma linha para cada procedimento armazenado e função que pode ser acessada pelo usuário corrente no banco de dados corrente. As colunas que descrevem o valor retornado se aplicam apenas às funções. Para os procedimentos armazenados estas colunas têm o valor NULL. A visão INFORMATION_SCHEMA.ROUTINES é baseada nas tabelas do sistema sysobjects e syscolumns. SQL Server Books Online (N. do T.) |