【发布时间】:2021-07-11 02:34:55
【问题描述】:
我创建了一个宏来从 Snowflake 中的 INFORMATION_SCHEMA 返回一个表名。
我在雪花中有如下表格
------------
| TABLES |
------------
| ~one |
| ~two |
| ~three |
------------
我想将表格类型(即one)传递给宏并获取实际的表格名称,即~one
这是我在 DBT 中的宏(get_table.sql),它接受参数并返回表名
{%- macro get_table(table_type) -%}
{%- set table_result -%}
select distinct TABLE_NAME from "DEMO_DB"."INFORMATION_SCHEMA"."TABLES" where TABLE_NAME like '\~%{{table_type}}%'
{%- endset -%}
{%- set table_name = run_query(table_result).columns[0].values() -%}
{{ return(table_name) }}
{%- endmacro -%}
这是我调用上述宏的 DBT 模型
{{ config(materialized='table',full_refresh=true) }}
select * from {{get_table("one")}}
但我收到一个错误:
模型编译错误
'None' 没有属性'table'
> 在宏 get_table (macros\get_table.sql)
我不明白错误在哪里
【问题讨论】:
标签: sql snowflake-cloud-data-platform dbt