类别:

系统函数 (系统信息)

SYSTEM$LIST_ICEBERG_TABLES_FROM_CATALOG

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

另请参阅:

语法

SYSTEM$LIST_ICEBERG_TABLES_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": "<namespace_identifier>",
    "name": "<table_name>"
  },
  {
    "namespace": "<namespace_identifier>",
    "name": "<table_name_n>"
  },
]
Copy

访问控制要求

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

权限

对象

备注

USAGE

集成(目录)

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

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

示例

仅列出默认目录命名空间中的表:

SELECT SYSTEM$LIST_ICEBERG_TABLES_FROM_CATALOG('myCatalogIntegration');
Copy

列出目录中的 每个 表:

SELECT SYSTEM$LIST_ICEBERG_TABLES_FROM_CATALOG('myCatalogIntegration', '', 0);
Copy

递归列出 db1 命名空间下的所有表:

SELECT SYSTEM$LIST_ICEBERG_TABLES_FROM_CATALOG('myCatalogIntegration', 'db1', 0);
Copy

列出 db1 命名空间下三个级别的所有表:

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