SHOW VIEWS

列出您具有访问权限的视图,包括安全视图。该命令可用于列出当前/指定数据库或架构的视图,或整个账户的视图。

输出返回视图元数据和属性,根据数据库、架构和视图名称按字典顺序排序。如果您希望使用提供的筛选器筛选结果,请务必注意这一点。

另请参阅:

ALTER VIEWCREATE VIEWDROP VIEWDESCRIBE VIEW

VIEWS 视图 (Information Schema)

语法

SHOW [ TERSE ] VIEWS [ LIKE '<pattern>' ]
                     [ IN { ACCOUNT | DATABASE [ <db_name> ] | [ SCHEMA ] [ <schema_name> ] | APPLICATION <application_name> | APPLICATION PACKAGE <application_package_name> } ]
                     [ STARTS WITH '<name_string>' ]
                     [ LIMIT <rows> [ FROM '<name_string>' ] ]
Copy

参数

TERSE

(可选)仅返回输出列的子集:

  • created_on

  • name

  • kind

  • database_name

  • schema_name

默认:无值(所有列都包含在输出中)

LIKE 'pattern'

(可选)按对象名称筛选命令输出。筛选器使用 不区分大小写 的模式匹配,并支持 SQL 通配符(%_)。

例如,以下模式返回 相同的 结果:

... LIKE '%testing%' ...
... LIKE '%TESTING%' ...

. 默认:无值(不对输出应用筛选)。

IN ACCOUNT | [ DATABASE ] db_name | [ SCHEMA ] schema_name | [ APPLICATION ] application_name | [ APPLICATION PACKAGE ] application_package_name

(可选)指定命令范围,该范围决定该命令是仅列出当前/指定数据库或架构的记录,还是列出整个账户的记录:

APPLICATIONAPPLICATION PACKAGE 关键字不是必需的,但它们指定了已命名 Snowflake Native App 的范围。

DATABASESCHEMA 关键字不是必需的;可以通过仅指定数据库或架构名称来设置作用域。同样,如果会话当前正在使用数据库,则不需要数据库或架构名称:

  • 如果指定的 DATABASESCHEMA 没有名称,并且会话当前没有正在使用的数据库,则该参数对输出没有影响。

  • 如果指定了 SCHEMA 且指定了名称,并且会话当前没有正在使用的数据库,则架构名称 必须 完全限定于数据库名称(例如 testdb.testschema)。

默认:取决于会话当前是否正在使用数据库:

  • 数据库:DATABASE 是默认值(即该命令返回您有权在数据库中查看的对象)。

  • 无数据库:ACCOUNT 是默认值(即该命令返回您有权在账户中查看的对象)。

STARTS WITH 'name_string'

(可选)根据对象名称开头显示的字符筛选命令输出。该字符串必须放在单引号内并且 区分大小写

例如,以下字符串会返回 不同的 结果:

... STARTS WITH 'B' ...
... STARTS WITH 'b' ...

. 默认:无值(不对输出应用筛选)

LIMIT rows [ FROM 'name_string' ]

(可选)限制返回的最大行数,同时还对结果启用“分页”功能。返回的实际行数可能小于指定的限制。例如,现有对象的数量小于指定的限制。

可选的 FROM 'name_string' 分子句实际上会充当结果的“游标”。这样就可以提取对象名称与指定字符串匹配的第一行之后的指定行数:

  • 该字符串必须放在单引号内并且 区分大小写

  • 该字符串不必包含完整的对象名称;支持部分名称。

默认:无值(不对输出应用限制)

备注

对于支持 FROM 'name_string'STARTS WITH 'name_string' 的 SHOW 子句,您可以将这两个子句组合在同一语句中。但是,两个条件都必须满足,否则它们相互抵消,不返回任何结果。

此外,对象按名称的字典顺序返回,因此 FROM 'name_string' 仅返回字典值高于 STARTS WITH 'name_string' 所返回行的行。

例如:

  • ... STARTS WITH 'A' LIMIT ... FROM 'B' 不会返回任何结果。

  • ... STARTS WITH 'B' LIMIT ... FROM 'A' 不会返回任何结果。

  • ... STARTS WITH 'A' LIMIT ... FROM 'AB' 将返回结果(如果有任何行与输入字符串匹配)。

输出

命令输出在以下列中提供视图属性和元数据:

描述

created_on

创建视图时的时间戳。

name

视图的名称。

reserved

(保留以供将来使用。)

kind

视图的种类,要么 VIEW,要么 MATERIALIZED_VIEW

database_name

视图所在数据库的名称。

schema_name

视图所在架构的名称。

owner

视图的所有者。

comment

可选注释。

text

创建视图的命令的文本(例如 CREATE VIEW ...)。

is_secure

如果视图是安全视图,则为 true;否则为 false。

is_materialized

如果视图是物化视图,则为 true;否则为 false。

owner_role_type

拥有对象的角色类型,例如 ROLE. 如果 Snowflake Native App 拥有该对象,则该值为 APPLICATION. 如果您删除该对象,则 Snowflake 会返回 NULL,原因是删除的对象不具有所有者角色。

change_tracking

ONOFFON 表示已启用,可以使用流或 SELECT 语句的 CHANGES 子句查询更改跟踪数据。OFF 表示已禁用,但可以根据需要选择 启用 更改跟踪。

使用说明

  • 根据设计,命令输出包括安全视图,但不提供有关这些视图的特定信息,除非您使用具有视图所有权的角色。要查看安全视图的详细信息,必须使用拥有视图的角色或使用 Information Schema 中的 VIEWS 视图。

  • 此命令的输出可能包括名称类似于 SN_TEMP_OBJECT_<n> 的对象(其中 <n> 是数字)。这些是 Snowpark 库代表用户创建的临时对象。

  • 该命令不需要正在运行的仓库即可执行。

  • 该命令仅返回当前用户的当前角色已获授至少一项访问权限的对象。

  • MANAGE GRANTS 访问权限隐式允许其持有者查看账户中的每个对象。默认情况下,只有账户管理员(具有 ACCOUNTADMIN 角色的用户)和安全管理员(具有 SECURITYADMIN 角色的用户)才具有 MANAGE GRANTS 权限。

  • To post-process the output of this command, you can use the pipe operator (->>) or the RESULT_SCAN function. Both constructs treat the output as a result set that you can query.

    The output column names for this command are generated in lowercase. If you consume a result set from this command with the pipe operator or the RESULT_SCAN function, use double-quoted identifiers for the column names in the query to ensure that they match the column names in the output that was scanned. For example, if the name of an output column is type, then specify "type" for the identifier.

  • LIMIT rows 的值不能超过 10000。如果省略 LIMIT rows,若结果集大于 1 万行,则该命令将导致错误。

    要查看存在超过 1 万条记录的结果,请在 Snowflake Information Schema 中包含 LIMIT rows 或查询相应的视图。

示例

显示您有权在 mydb.public 架构中查看的名称以 line 开头的所有视图:

SHOW VIEWS LIKE 'line%' IN mydb.public;

+-------------------------------+---------+----------+---------------+-------------+----------+---------+-------------------------------------------------------+-----------+-----------------+-----------------+-----------------+
| created_on                    | name    | reserved | database_name | schema_name | owner    | comment | text                                                  | is_secure | is_materialized | change_tracking | owner_role_type |
+-------------------------------+---------+----------+---------------+-------------+----------+---------+-------------------------------------------------------+-----------+-----------------+-----------------+-----------------+
| 2019-05-24 18:41:14.247 -0700 | liners1 |          | MYDB          | PUBLIC      | SYSADMIN |         | create materialized views liners1 as select * from t; | false     | false           | on              | ROLE            |
+-------------------------------+---------+----------+---------------+-------------+----------+---------+-------------------------------------------------------+-----------+-----------------+-----------------+-----------------+
Copy
语言: 中文