类别:

系统函数 (系统信息)

SYSTEM$LIST_NAMESPACES_FROM_CATALOG

列出远程 Apache Iceberg™ REST 目录中的命名空间(包括 Snowflake Open Catalog)。

另请参阅:

语法

SYSTEM$LIST_NAMESPACES_FROM_CATALOG( '<catalog_integration_name>'
  [ , '<parent_namespace>', <levels> ] )
Copy

实参

必填:

catalog_integration_name

Iceberg RESTSnowflake Open Catalog 目录集成的标识符。

可选:

parent_namespace

从其中开始列出命名空间的命名空间标识符。要检索目录中第 0 个命名空间级别的结果,请指定一个空字符串 ('')。

默认值:目录集成 (CATALOG_NAMESPACE) 的默认命名空间。

levels

指定要在命名空间层次结构中遍历的级别数,以列出子命名空间。

例如:

  • 如果设置为 0,则函数将递归地返回与 parent_namespace 相关的所有命名空间。

  • 如果设置为 1,则函数返回 parent_namespace 下一级的所有命名空间。

  • 如果设置为 n,则函数将返回与 parent_namespace 相关的最高达 n 个级别的命名空间。

默认值:1

返回

返回一个 JSON 格式的字符串,该字符串列出了 Iceberg REST 目录中指定父命名空间和级别数的命名空间。

JSON 格式化字符串具有以下结构:

[
  "<namespace_identifier>",
  "<namespace_identifier_n>"
]
Copy

访问控制要求

用于执行此操作的 角色 必须至少具有以下 权限

权限

对象

备注

USAGE

集成(目录)

有关创建具有指定权限集的自定义角色的说明,请参阅 创建自定义角色

有关对 安全对象 执行 SQL 操作的相应角色和权限授予的一般信息,请参阅 访问控制概述

示例

仅列出目录集成的默认命名空间下的直接命名空间:

SELECT SYSTEM$LIST_NAMESPACES_FROM_CATALOG('my_catalog_integration');
Copy

递归列出目录中的所有命名空间:

SELECT SYSTEM$LIST_NAMESPACES_FROM_CATALOG('my_catalog_integration', '', 0);
Copy

仅列出“db1”命名空间下(直接)的命名空间一个级别:

SELECT SYSTEM$LIST_NAMESPACES_FROM_CATALOG('my_catalog_integration', 'db1');
Copy

列出“db1”命名空间下的命名空间三个级别:

SELECT SYSTEM$LIST_NAMESPACES_FROM_CATALOG('my_catalog_integration', 'db1', 3);
Copy
语言: 中文