作为消费者,您可以创建数据库共享的视图吗?
Can you create a View of a database Share, as a consumer?
我正在尝试创建数据库共享的视图(我是共享的使用者)。
例如
create view testview as (select * from myshare);
导致此错误:
SQL execution error: Creating view on shared database 'myshare' is not allowed.
我没有看到关于此的任何结论性文档。如果不允许这样做,是否有任何解决方法来实现类似的结果?
您不能在共享数据库中创建视图(或任何其他对象),因为它是 read-only 提供商数据库的反映。
您可以在引用它的另一个 [database.schema
] 中创建一个视图。
这是一个使用 ZEPL 的 US_STOCK_DAILY 来自 Snowflake Marketplace 的份额的示例。
所以这失败了,正如您所发现的:
Use Database US_STOCKS_DAILY;
Use Schema PUBLIC;
Create View MAX_DATE as
Select max(DATE) MAXDATE from STOCK_HISTORY;
SQL execution error: Creating view on shared database 'US_STOCKS_DAILY' is not allowed.
但这行得通。
Use Database MY_DATABASE ;
Use Schema MY_SCHEMA;
Create View MAX_DATE as
Select max(DATE) MAXDATE
from US_STOCKS_DAILY.PUBLIC.STOCK_HISTORY;
Select max(DATE) MAXDATE from MAX_DATE;
请注意,您需要 fully-qualify 提供程序架构中的对象名称。
我正在尝试创建数据库共享的视图(我是共享的使用者)。
例如
create view testview as (select * from myshare);
导致此错误:
SQL execution error: Creating view on shared database 'myshare' is not allowed.
我没有看到关于此的任何结论性文档。如果不允许这样做,是否有任何解决方法来实现类似的结果?
您不能在共享数据库中创建视图(或任何其他对象),因为它是 read-only 提供商数据库的反映。
您可以在引用它的另一个 [database.schema
] 中创建一个视图。
这是一个使用 ZEPL 的 US_STOCK_DAILY 来自 Snowflake Marketplace 的份额的示例。
所以这失败了,正如您所发现的:
Use Database US_STOCKS_DAILY;
Use Schema PUBLIC;
Create View MAX_DATE as
Select max(DATE) MAXDATE from STOCK_HISTORY;
SQL execution error: Creating view on shared database 'US_STOCKS_DAILY' is not allowed.
但这行得通。
Use Database MY_DATABASE ;
Use Schema MY_SCHEMA;
Create View MAX_DATE as
Select max(DATE) MAXDATE
from US_STOCKS_DAILY.PUBLIC.STOCK_HISTORY;
Select max(DATE) MAXDATE from MAX_DATE;
请注意,您需要 fully-qualify 提供程序架构中的对象名称。