

 从补丁 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/)。

# PG\$1GET\$1COLS
<a name="PG_GET_COLS"></a>

返回表或视图定义的列元数据。

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

```
pg_get_cols('name')
```

## 参数
<a name="PG_GET_COLS-arguments"></a>

 *名称*   
Amazon Redshift 表或视图的名称。有关更多信息，请参阅 [名称和标识符](r_names.md)。

## 返回类型
<a name="PG_GET_COLS-return-type"></a>

VARCHAR 

## 使用说明
<a name="PG_GET_COLS-usage-notes"></a>

PG\$1GET\$1COLS 函数为表或视图定义中的每个列返回一行内容。该行包含一个逗号分隔列表，其中包括 schema 名称、关系名称、列名、数据类型和列编号。SQL 结果的格式取决于所使用的 SQL 客户端。

## 示例
<a name="PG_GET_COLS-example"></a>

以下示例返回针对模式 `public` 中名为 `SALES_VW` 的视图和模式 `mytickit1` 中名为 `sales` 的表的结果，相应的视图和表由用户在连接的数据库 `dev` 中创建。

以下示例会返回名为 `SALES_VW` 的视图的列元数据。

```
select pg_get_cols('sales_vw');

pg_get_cols                                                
-----------------------------------------------------------
(public,sales_vw,salesid,integer,1)                        
(public,sales_vw,listid,integer,2)                         
(public,sales_vw,sellerid,integer,3)                       
(public,sales_vw,buyerid,integer,4)                        
(public,sales_vw,eventid,integer,5)                        
(public,sales_vw,dateid,smallint,6)                        
(public,sales_vw,qtysold,smallint,7)                       
(public,sales_vw,pricepaid,"numeric(8,2)",8)               
(public,sales_vw,commission,"numeric(8,2)",9)              
(public,sales_vw,saletime,"timestamp without time zone",10)
```

以下示例会以表格式返回 `SALES_VW` 视图的列元数据。

```
select * from pg_get_cols('sales_vw') 
cols(view_schema name, view_name name, col_name name, col_type varchar, col_num int);

view_schema | view_name | col_name   | col_type                    | col_num
------------+-----------+------------+-----------------------------+--------
public      | sales_vw  | salesid    | integer                     |       1
public      | sales_vw  | listid     | integer                     |       2
public      | sales_vw  | sellerid   | integer                     |       3
public      | sales_vw  | buyerid    | integer                     |       4
public      | sales_vw  | eventid    | integer                     |       5
public      | sales_vw  | dateid     | smallint                    |       6
public      | sales_vw  | qtysold    | smallint                    |       7
public      | sales_vw  | pricepaid  | numeric(8,2)                |       8
public      | sales_vw  | commission | numeric(8,2)                |       9
public      | sales_vw  | saletime   | timestamp without time zone |      10
```

以下示例会以表格式返回架构 `mytickit1` 中 `SALES` 表的列元数据。

```
select * from pg_get_cols('"mytickit1"."sales"') 
cols(view_schema name, view_name name, col_name name, col_type varchar, col_num int);

view_schema | view_name | col_name   | col_type                    | col_num
------------+-----------+------------+-----------------------------+--------
mytickit1   | sales     | salesid    | integer                     |       1
mytickit1   | sales     | listid     | integer                     |       2
mytickit1   | sales     | sellerid   | integer                     |       3
mytickit1   | sales     | buyerid    | integer                     |       4
mytickit1   | sales     | eventid    | integer                     |       5
mytickit1   | sales     | dateid     | smallint                    |       6
mytickit1   | sales     | qtysold    | smallint                    |       7
mytickit1   | sales     | pricepaid  | numeric(8,2)                |       8
mytickit1   | sales     | commission | numeric(8,2)                |       9
mytickit1   | sales     | saletime   | timestamp without time zone |      10
```