如何在Snowflake中获取物化视图的定义并将其用作子查询或CTE?

问题描述 投票:0回答:1

我需要创建一个子查询或 CTE,在其中获取所有物化视图的名称及其定义(它是如何创建的,我指的是它的 DDL)。我的主要目的是了解物化视图从哪里获取数据(这就是我想要 DDL 的原因)

我知道我可以从以下查询中获取我需要的信息:

SHOW MATERIALIZED VIEWS IN DATABASE DB_NAME;

该查询将为我提供所需的数据库的所有物化视图,这很棒,但我无法在子查询或 CTE 中使用该信息。

要分享我需要的简单示例,您可以尝试以下查询:

SELECT database_name, schema_name, name, text
FROM (SHOW MATERIALIZED VIEWS IN DATABASE DB_NAME);

还有另一个查询:

WITH
CTE AS (
SHOW MATERIALIZED VIEWS IN DATABASE DB_NAME)
SELECT database_name, schema_name, name, TEXT
FROM CTE;

它们都返回语法错误,这让我明白 SHOW 语句不能在子查询中使用。

你知道我可以在子查询中获取物化视图的 DDL 吗?

sql snowflake-cloud-data-platform subquery ddl materialized-views
1个回答
0
投票

RESULT_SCAN 可以在这里提供帮助。对于任何 SHOW 查询,您可以立即对结果进行第二次查询。例如,

SHOW MATERIALIZED VIEWS IN DATABASE DB_NAME;
SELECT "database_name", "schema_name", "name", "text" FROM TABLE(RESULT_SCAN(LAST_QUERY_ID()));
© www.soinside.com 2019 - 2024. All rights reserved.