gpt4 book ai didi

sql - Listagg Redshift DDL

转载 作者:行者123 更新时间:2023-12-04 12:11:11 32 4
gpt4 key购买 nike

我正在尝试在 Redshift 中检索表的 DDL。我找到了 this View ,我可以在其中轻松选择任何表的定义。但是,我需要在一行中提供此信息,并且我知道有这个 Listagg 函数,但是如果我尝试这样做:

select listagg(ddl, ' ')
from admin.v_generate_tbl_ddl
where schemaname = 'schema'
and tablename = 'orders'

它给了我这个错误:

Query execution failed

Reason: SQL Error [XX000]: ERROR: One or more of the used functions must be applied on at least one user created tables. Examples of user table only functions are LISTAGG, MEDIAN, PERCENTILE_CONT, etc



你能帮我解决这个问题吗?

最佳答案

listagg函数是仅计算节点的函数。

但是您运行以获取表 ddl 的查询仅在领导者上运行,因为它仅指定 pg_* 表。

根据 AWS 文档

仅引用目录表(带有 PG 前缀的表,例如 PG_TABLE_DEF)或不引用任何表的查询,只在领导节点上运行。

如果使用计算节点函数的查询未引用用户定义的表或 Amazon Redshift 系统表,则会返回以下错误。

[Amazon] (500310) 无效操作:必须在至少一个用户创建的表上应用一项或多项使用的功能。

https://docs.aws.amazon.com/redshift/latest/dg/c_SQL_functions_compute_node_only.html

总而言之,由于您的查询没有引用任何 用户创建的表 ,您不能使用 listagg

关于sql - Listagg Redshift DDL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54910777/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com