我们可以在 Snowflake 中使用参数化 View 吗?比如传递表名或数据库名作为参数而不是硬编码吗?
最佳答案
我认为你最好的选择是使用 session variables结合常规 View 。
session 变量可以在 View DDL 中引用,并且需要在查询 View 的任何 session 中设置。
为此,您可以使用 IDENTIFIER Snowflake 中的函数,它允许您使用文本作为对象标识符。
create table t1 (col1 number, col2 number);
create table t2 (col1 number, col2 number);
set ti = 't1';
create view v1 as select col1, col2 from identifier($ti);
在查询 View 之前,您需要将 session 变量(在本例中为
ti
)设置为表名(如果需要是完全限定的)。set ti = 't1';
select * from v1; -- returns data from t1
set ti = 't2';
select * from v1; -- returns data from t2
关于snowflake-cloud-data-platform - 我们可以在 Snowflake 中使用参数化 View 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58556518/