- 类别:
系统函数 (系统信息)
SYSTEM$LIST_NAMESPACES_FROM_CATALOG¶
列出远程 Apache Iceberg™ REST 目录中的命名空间(包括 Snowflake Open Catalog)。
语法¶
SYSTEM$LIST_NAMESPACES_FROM_CATALOG( '<catalog_integration_name>'
[ , '<parent_namespace>', <levels> ] )
实参¶
必填:
catalog_integration_name
Iceberg REST 或 Snowflake 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>"
]
访问控制要求¶
权限 |
对象 |
备注 |
---|---|---|
USAGE |
集成(目录) |
有关创建具有指定权限集的自定义角色的说明,请参阅 创建自定义角色。
示例¶
仅列出目录集成的默认命名空间下的直接命名空间:
SELECT SYSTEM$LIST_NAMESPACES_FROM_CATALOG('my_catalog_integration');
递归列出目录中的所有命名空间:
SELECT SYSTEM$LIST_NAMESPACES_FROM_CATALOG('my_catalog_integration', '', 0);
仅列出“db1”命名空间下(直接)的命名空间一个级别:
SELECT SYSTEM$LIST_NAMESPACES_FROM_CATALOG('my_catalog_integration', 'db1');
列出“db1”命名空间下的命名空间三个级别:
SELECT SYSTEM$LIST_NAMESPACES_FROM_CATALOG('my_catalog_integration', 'db1', 3);