

 从补丁 198 开始，Amazon Redshift 将不再支持创建新的 Python UDF。现有的 Python UDF 将继续正常运行至 2026 年 6 月 30 日。有关更多信息，请参阅[博客文章](https://www.amazonaws.cn/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/)。

# SYS\_PROCEDURE\_CALL
<a name="SYS_PROCEDURE_CALL"></a>

使用 SYS\_PROCEDURE\_CALL 视图以获取有关存储过程调用的信息，包括开始时间、结束时间、存储过程调用的状态以及嵌套存储过程调用的调用层次结构。每个存储过程调用接受一个查询 ID。

SYS\_PROCEDURE\_CALL 对所有用户可见。超级用户可以查看所有行；普通用户只能查看其自己的数据。有关更多信息，请参阅 [系统表和视图中的数据可见性](cm_chap_system-tables.md#c_visibility-of-data)。

## 表列
<a name="SYS_PROCEDURE_CALL-table-columns"></a>


| 列名称  | 数据类型  | 说明  | 
| --- | --- | --- | 
| session\_user\_id | 整数 | 用户的标识符，该用户创建了会话并且是顶级存储过程调用的调用方。 | 
| security\_user\_id | 整数 | 用户的标识符，该用户的权限用于在存储过程中运行语句。如果存储过程是从外部 DEFINER 存储过程调用的，那么这将是该外部存储过程的拥有者 user\_id。 | 
| query\_id | 整数 | 存储过程调用的查询标识符。 | 
| query\_text | char(4000) | 存储过程调用查询的文本。 | 
| start\_time | timestamp | 查询开始运行的时间（采用 UTC 表示）。时间戳使用六位数精度表示小数秒，例如：2009-06-12 11:29:19.131358。 | 
| end\_time | timestamp | 查询完成运行的时间（采用 UTC 表示）。时间戳使用六位数精度表示小数秒，例如：2009-06-12 11:29:19.131358。 | 
| status | char(10) | 存储过程调用的状态。当系统停止存储过程或用户取消存储过程时，该值将为已取消。如果存储过程调用运行至完成，则值为成功。 | 
| caller\_procedure\_query\_id | 整数 | 如果对存储过程调用的调用是由其它存储过程调用执行的，则此列包含外部调用的查询 ID。否则该字段为 NULL。 | 

## 示例查询
<a name="SYS_PROCEDURE_CALL-sample-queries"></a>

以下查询返回嵌套存储过程调用的层次结构。

```
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;
```

示例输出。

```
 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)
```