类别:

:doc:`/sql-reference/functions-system`(信息)

SYSTEM$GET_DEFAULT_COLUMNS_OVERRIDE_FOR_SYSTEM_OBJECT

返回通过前次调用 SYSTEM$SET_DEFAULT_COLUMNS_OVERRIDE_FOR_SYSTEM_OBJECT 为指定 Snowflake 视图(例如,特定 ACCOUNT_USAGE 视图INFORMATION_SCHEMA 视图)设置的列列表。

有关更多信息,请参阅 处理 SHOW 命令输出和 Snowflake 视图中的新列

另请参阅:

SYSTEM$SET_DEFAULT_COLUMNS_OVERRIDE_FOR_SYSTEM_OBJECTSYSTEM$UNSET_DEFAULT_COLUMNS_OVERRIDE_FOR_SYSTEM_OBJECTSYSTEM$GET_ALL_DEFAULT_COLUMNS_OVERRIDES

语法

SYSTEM$GET_DEFAULT_COLUMNS_OVERRIDE_FOR_SYSTEM_OBJECT(
  '<object_type>',
  '<database_name>',
  '<schema_name>',
  '<object_name>'
)
Copy

实参

'object_type'

对象的类型。您必须指定此实参的 'VIEW'

'database_name'

包含对象的数据库的名称。您必须指定 'SNOWFLAKE';或者,对于 INFORMATION_SCHEMA 视图,则需指定空字符串。

'schema_name'

包含对象的架构的名称。您必须在 SNOWFLAKE 数据库'INFORMATION_SCHEMA' 中指定架构名称。

'object_name'

对象名称。

返回

返回一个 VARCHAR 值,其中包含前次调用 SYSTEM$SET_DEFAULT_COLUMNS_OVERRIDE_FOR_SYSTEM_OBJECT 所指定的列的逗号分隔列表。列名称为大写。

如果未调用 SYSTEM$SET_DEFAULT_COLUMNS_OVERRIDE_FOR_SYSTEM_OBJECT,或者如果调用 SYSTEM$UNSET_DEFAULT_COLUMNS_OVERRIDE_FOR_SYSTEM_OBJECT 以清除列的列表,该函数会返回一个空字符串。

访问控制要求

只有账户管理员(被授予 ACCOUNTADMIN 角色的用户)可以调用此函数。

使用说明

  • 您必须有正在使用的数据库(例如,通过运行 USE DATABASE)才能调用此函数。如果没有正在使用的数据库,则函数调用会失败。

示例

以下示例返回了通过前次调用 SYSTEM$SET_DEFAULT_COLUMNS_OVERRIDE_FOR_SYSTEM_OBJECT 为 ACCOUNT_USAGE 架构下的 TABLES 视图 指定的列的列表:

SELECT SYSTEM$GET_DEFAULT_COLUMNS_OVERRIDE_FOR_SYSTEM_OBJECT(
  'VIEW',
  'SNOWFLAKE',
  'ACCOUNT_USAGE',
  'TABLES'
);
Copy
+--------------------------------------------------------+
| SYSTEM$GET_DEFAULT_COLUMNS_OVERRIDE_FOR_SYSTEM_OBJECT( |
|   'VIEW',                                              |
|   'SNOWFLAKE',                                         |
|   'ACCOUNT_USAGE',                                     |
|   'TABLES'                                             |
| )                                                      |
|--------------------------------------------------------|
| TABLE_NAME,TABLE_SCHEMA,TABLE_TYPE                     |
+--------------------------------------------------------+

以下示例返回了通过前次调用 SYSTEM$SET_DEFAULT_COLUMNS_OVERRIDE_FOR_SYSTEM_OBJECT 为 INFORMATION_SCHEMA 架构下的 TABLES 视图 指定的列的列表:

SELECT SYSTEM$GET_DEFAULT_COLUMNS_OVERRIDE_FOR_SYSTEM_OBJECT(
  'VIEW',
  '',
  'ACCOUNT_USAGE',
  'TABLES'
);
Copy
+--------------------------------------------------------+
| SYSTEM$GET_DEFAULT_COLUMNS_OVERRIDE_FOR_SYSTEM_OBJECT( |
|   'VIEW',                                              |
|   '',                                                  |
|   'INFORMATION_SCHEMA',                                |
|   'TABLES'                                             |
| )                                                      |
|--------------------------------------------------------|
| TABLE_NAME,TABLE_SCHEMA,TABLE_TYPE                     |
+--------------------------------------------------------+

如果未调用 SYSTEM$SET_DEFAULT_COLUMNS_OVERRIDE_FOR_SYSTEM_OBJECT,或者如果调用 SYSTEM$UNSET_DEFAULT_COLUMNS_OVERRIDE_FOR_SYSTEM_OBJECT 以清除列表,该函数会返回一个空字符串:

SELECT SYSTEM$UNSET_DEFAULT_COLUMNS_OVERRIDE_FOR_SYSTEM_OBJECT(
  'VIEW',
  'SNOWFLAKE',
  'ACCOUNT_USAGE',
  'TABLES'
);

SELECT SYSTEM$GET_DEFAULT_COLUMNS_OVERRIDE_FOR_SYSTEM_OBJECT(
  'VIEW',
  'SNOWFLAKE',
  'ACCOUNT_USAGE',
  'TABLES'
);
Copy
+--------------------------------------------------------+
| SYSTEM$GET_DEFAULT_COLUMNS_OVERRIDE_FOR_SYSTEM_OBJECT( |
|   'VIEW',                                              |
|   'SNOWFLAKE',                                         |
|   'ACCOUNT_USAGE',                                     |
|   'TABLES'                                             |
| )                                                      |
|--------------------------------------------------------|