snowflake-cloud-data-platform - 我们可以在雪花中使用参数化视图吗?
问题描述
我们可以在雪花中使用参数化视图吗?比如传递表名或者数据库名作为参数而不是硬编码呢?
解决方案
我认为您最好的选择是将会话变量与常规视图结合使用。
会话变量可以在视图 DDL 中引用,并且需要在查询视图的任何会话中设置。
为此,您可以使用 Snowflake 中的IDENTIFIER函数,它允许您使用文本作为对象标识符。
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);
在查询视图之前,您需要将会话变量(ti
在这种情况下)设置为表名(如果需要,完全限定)。
set ti = 't1';
select * from v1; -- returns data from t1
set ti = 't2';
select * from v1; -- returns data from t2
推荐阅读
- node.js - 用 Jest 模拟间接依赖
- python - 我在将 tensorflow 安装到 vs 代码时遇到问题
- react-native - React Native:等到动作完成并且reducers设置状态
- javascript - 如何查看当前 deno 版本中使用的 typescript 版本?
- c++ - c++ 是否仍在保存“原始值的引用”?
- python - 试图抓取网址
- java - 使用 JpaRepository 过滤子类单表的子类实体
- android - 带有渐变颜色的文本样式
- javascript - 选择属性中的最后一个类(JS)
- c# - 是否可以将 Unity 模型存储在持久数据路径中?