

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

# SHOW PROCEDURE
<a name="r_SHOW_PROCEDURE"></a>

显示给定存储过程的定义，包括其签名。您可以使用 SHOW PROCEDURE 的输出来重新创建存储过程。

## 语法
<a name="r_SHOW_PROCEDURE-synopsis"></a>

```
SHOW PROCEDURE sp_name [( [ [ argname ] [ argmode ] argtype [, ...] ] )]
```

## 参数
<a name="r_SHOW_PROCEDURE-parameters"></a>

 *sp\$1name*   
要显示的过程的名称。

*[argname] [ argmode] argtype*   
用于标识存储过程的输入参数类型。（可选）您可以包含完整的参数数据类型，包括 OUT 参数。如果存储过程名称是唯一的（即未重载），则此部分是可选的。

## 示例
<a name="r_SHOW_PROCEDURE-examples"></a>

以下示例显示 `test_spl2` 过程的定义。

```
show procedure test_sp2(int, varchar);
                                        Stored Procedure Definition
------------------------------------------------------------------------------------------------------------
CREATE OR REPLACE PROCEDURE public.test_sp2(f1 integer, INOUT f2 character varying, OUT character varying)
LANGUAGE plpgsql
AS $_$
DECLARE
out_var alias for $3;
loop_var int;
BEGIN
IF f1 is null OR f2 is null THEN
RAISE EXCEPTION 'input cannot be null';
END IF;
CREATE TEMP TABLE etl(a int, b varchar);
FOR loop_var IN 1..f1 LOOP
insert into etl values (loop_var, f2);
f2 := f2 || '+' || f2;
END LOOP;
SELECT INTO out_var count(*) from etl;
END;
$_$

(1 row)
```