SYS_PROCEDURE_CALL
Use a visão SYS_PROCEDURE_CALL para obter informações sobre as chamadas de procedimento armazenado, inclusive a hora de início, a hora de término, o status de uma chamada de procedimento armazenado e a hierarquia de chamadas de procedimento armazenado aninhado. Cada chamada de procedimento armazenado recebe um ID de consulta.
SYS_PROCEDURE_CALL está visível para todos os usuários. Os superusuários podem ver todas as linhas; usuários regulares podem ver somente seus próprios dados. Para obter mais informações, consulte Visibilidade de dados em tabelas e visualizações de sistema.
Colunas da tabela
Nome da coluna | Tipo de dados | Descrição |
---|---|---|
session_user_id | inteiro | O identificador do usuário que criou a sessão e é o invocador da chamada de procedimento armazenado de nível superior. |
security_user_id | inteiro | O identificador do usuário cujos privilégios foram usados para executar a instrução dentro do procedimento armazenado. Se o procedimento armazenado for DEFINER, esse será o user_id proprietário do procedimento armazenado. |
query_id | inteiro | O identificador da consulta da chamada do procedimento armazenado. |
query_text | char(4.000) | O texto da consulta de chamada de procedimento. |
start_time | timestamp | A hora de início (em UTC) da execução da consulta. O timestamp usa seis dígitos de precisão para segundos fracionários, por exemplo: 2009-06-12 11:29:19.131358. |
end_time | timestamp | A hora de término (em UTC) da execução da consulta. O timestamp usa seis dígitos de precisão para segundos fracionários, por exemplo: 2009-06-12 11:29:19.131358. |
status | char(10) | O status da chamada do procedimento armazenado. Quando o procedimento armazenado foi interrompido pelo sistema ou cancelado pelo usuário, o valor foi cancelado. Se procedimento armazenado for concluído, o valor será sucesso. |
caller_procedure_query_id | inteiro | Se o procedimento armazenado tiver sido invocado por outro procedimento armazenado, essa coluna terá o ID de consulta da chamada externa. Caso contrário, o campo será NULL. |
Consultas de exemplo
A consulta a seguir retorna uma hierarquia de chamadas de procedimento armazenado aninhado.
select query_id, datediff(seconds, start_time, end_time) as elapsed_time, status, trim(query_text) as call, caller_procedure_query_id from sys_procedure_call;
Exemplo de resultado.
query_id | elapsed_time | status | call | caller_procedure_query_id ----------+--------------+---------+--------------------------------------------------+--------------------------- 3087 | 18 | success | CALL proc_bd906c98c45443ffa165e9552056902d(1) | 3085 3085 | 18 | success | CALL proc_bd906c98c45443ffa165e9552056902d_2(1); | (2 rows)