SYSTEM$CREATE_SEMANTIC_VIEW_FROM_YAML¶
Creates a semantic view from a semantic model specification in YAML format, or verifies that you can use a semantic model specification to create a semantic view.
存储过程使用 YAML 规范中的名称作为语义视图的名称。
如果已经存在同名的语义视图,则存储过程会尝试替换该语义视图并复制该语义视图中的授权。这与运行 CREATE OR REPLACE SEMANTIC VIEW ... COPY GRANTS 的效果相同。
语法¶
实参¶
必填:
'fully_qualified_schema_name'要在其中创建语义视图的架构的 完全限定名称。
必须使用数据库名称(例如
my_db.my_schema)限定架构名称。否则,会发生错误。'yaml_specification'Semantic model specification in YAML format.
若规范中包含引号、反斜杠或换行符,可为该实参使用 美元引号字符串常量。。
可选:
返回¶
返回一个 VARCHAR类型的值,其中包含创建语义视图或验证该视图能否被创建的操作状态。
如果存储过程未能成功创建语义视图或验证该视图能否被创建,则会抛出异常。
访问控制要求¶
权限 |
对象 |
备注 |
|---|---|---|
CREATE SEMANTIC VIEW |
架构 |
创建新的语义视图时需要。 |
SELECT |
表、视图 |
语义视图定义中使用的任何表和/或视图都需要。 |
OWNERSHIP |
同名的现有语义视图。 |
如果已经存在同名的语义视图,则存储过程会尝试替换该语义视图。要替换现有的语义视图,必须使用已被授予 OWNERSHIP 权限的角色。 OWNERSHIP is a special privilege on an object that is automatically granted to the role that created the object, but can also be transferred using the GRANT OWNERSHIP command to a different role by the owning role (or any role with the MANAGE GRANTS privilege). |
Operating on an object in a schema requires at least one privilege on the parent database and at least one privilege on the parent schema.
有关创建具有指定权限集的自定义角色的说明,请参阅 创建自定义角色。
使用说明¶
如果数据库或模式的名称是 :ref:`双引号标识符 <label-delimited_identifier>`(例如名称中包含空格),则必须在名称外保留双引号。例如:
示例¶
以下示例验证了您是否可以在 YAML 中使用给定的语义模型规范,在数据库 my_db 和架构 tpch_analysis 中创建名为 my_schema 的语义视图:
如果规范有效,则存储过程返回以下消息:
如果 YAML 语法无效,则存储过程会引发异常。例如,如果缺少冒号:
存储过程会抛出异常,表示 YAML 语法无效:
如果规范引用的物理表不存在,则存储过程会引发异常:
同样,如果规范引用的主键列不存在,则存储过程会引发异常:
以下示例在数据库 my_db 和架构 tpch_analysis 中创建了一个名为 my_schema 的语义视图: