SHOW 명령 출력 및 Snowflake 뷰에서 새 열 처리하기

SHOW <오브젝트> 명령의 출력 및 Snowflake 뷰(예: :doc:`SNOWFLAKE 데이터베이스 </sql-reference/snowflake-db>`의 :doc:`ACCOUNT_USAGE 스키마</sql-reference/account-usage>`의 뷰 및 :doc:`INFORMATION_SCHEMA 스키마 </sql-reference/info-schema>`의 뷰)에 주기적으로 새 열이 도입됩니다.

특정 수의 열을 포함하는 결과 세트에 종속되거나 열의 순서에 종속되는 스크립트 또는 코드가 있는 경우 새 열의 도입이 해당 스크립트 또는 코드에 영향을 미칠 수 있습니다.

새 열로 인해 발생하는 문제를 임시로 해결하기

새 열의 도입으로 인해 스크립트 또는 코드에 문제가 발생하는 경우 Snowflake 관리자(ACCOUNTADMIN 역할이 부여된 사용자)는 특정 SHOW 명령 또는 Snowflake 뷰의 SELECT* 쿼리 실행을 위해 반환되는 열을 변경할 수 있습니다. 이러한 열을 *기본 열*이라고 합니다.

SHOW 명령의 기본 열 재정의하기

SHOW 명령의 출력에서 새로 도입된 열을 제외하려면 SYSTEM$SET_DEFAULT_COLUMNS_OVERRIDE_FOR_SHOW_COMMAND 함수를 호출하여 오브젝트의 유형 및 반환되어야 하는 열 목록을 지정합니다.

SHOW NOTIFICATION INTEGRATIONS 명령의 결과에 새로운 direction 열이 도입되었다고 가정해 보겠습니다. 새로운 direction 열이 명령의 출력에 포함되지 않도록 방지하려면 SYSTEM$SET_DEFAULT_COLUMNS_OVERRIDE_FOR_SHOW_COMMAND를 호출하여 ``’NOTIFICATION INTEGRATIONS’``를 오브젝트의 유형으로 지정합니다. 출력에서 반환해야 하는 열의 쉼표로 구분된 목록(``direction``을 제외한 목록)을 전달합니다.

SELECT SYSTEM$SET_DEFAULT_COLUMNS_OVERRIDE_FOR_SHOW_COMMAND(
  'NOTIFICATION INTEGRATIONS',
  'name, type, category, enabled, comment, created_on'
);
Copy

계정의 누군가가 SHOW NOTIFICATION INTEGRATIONS 명령을 실행하는 경우, 새 direction 열은 출력에 반환되지 않습니다.

SHOW NOTIFICATION INTEGRATIONS;
Copy
+--------------------------------+---------+--------------+---------+---------+-------------------------------+
| name                           | type    | category     | enabled | comment | created_on                    |
|--------------------------------+---------+--------------+---------+---------+-------------------------------|
| SLACK_NOTIFICATION_INTEGRATION | WEBHOOK | NOTIFICATION | true    | NULL    | 2025-07-02 06:14:53.859 -0700 |
+--------------------------------+---------+--------------+---------+---------+-------------------------------+

SHOW 명령의 기본 열 재설정하기

이전의 SYSTEM$SET_DEFAULT_COLUMNS_OVERRIDE_FOR_SHOW_COMMAND 호출을 실행 취소하고 특정 오브젝트 유형에 대한 SHOW 명령의 모든 열을 반환해야 하는 경우 SYSTEM$UNSET_DEFAULT_COLUMNS_OVERRIDE_FOR_SHOW_COMMAND 함수를 호출하여 오브젝트 유형을 지정합니다. 예:

SELECT SYSTEM$UNSET_DEFAULT_COLUMNS_OVERRIDE_FOR_SHOW_COMMAND(
  'NOTIFICATION INTEGRATIONS'
);
Copy

SHOW 명령의 기본 열 목록 가져오기

특정 오브젝트 유형에 대해 SYSTEM$SET_DEFAULT_COLUMNS_OVERRIDE_FOR_SHOW_COMMAND가 호출되었는지 확인하고 명령의 출력에서 반환될 열 목록을 원하는 경우 SYSTEM$GET_DEFAULT_COLUMNS_OVERRIDE_FOR_SHOW_COMMAND 함수를 호출하여 오브젝트의 유형을 지정합니다. 예:

SELECT SYSTEM$GET_DEFAULT_COLUMNS_OVERRIDE_FOR_SHOW_COMMAND(
  'NOTIFICATION INTEGRATIONS'
);
Copy
+-------------------------------------------------------+
| SYSTEM$GET_DEFAULT_COLUMNS_OVERRIDE_FOR_SHOW_COMMAND( |
|   'NOTIFICATION INTEGRATIONS'                         |
| )                                                     |
|-------------------------------------------------------|
| name,type,category,enabled,comment,created_on         |
+-------------------------------------------------------+

이전에 SYSTEM$SET_DEFAULT_COLUMNS_OVERRIDE_FOR_SHOW_COMMAND가 호출되지 않았거나 SYSTEM$UNSET_DEFAULT_COLUMNS_OVERRIDE_FOR_SHOW_COMMAND가 호출된 경우 해당 함수는 빈 문자열을 반환합니다.

SELECT SYSTEM$UNSET_DEFAULT_COLUMNS_OVERRIDE_FOR_SHOW_COMMAND(
  'NOTIFICATION INTEGRATIONS'
);

SELECT SYSTEM$GET_DEFAULT_COLUMNS_OVERRIDE_FOR_SHOW_COMMAND(
  'NOTIFICATION INTEGRATIONS'
);
Copy
+-------------------------------------------------------+
| SYSTEM$GET_DEFAULT_COLUMNS_OVERRIDE_FOR_SHOW_COMMAND( |
|   'NOTIFICATION INTEGRATIONS'                         |
| )                                                     |
|-------------------------------------------------------|
|                                                       |
+-------------------------------------------------------+

Snowflake 뷰의 기본 열 재정의하기

Snowflake 뷰의 SELECT * 쿼리 결과에서 새로 도입된 열을 제외하려면 SYSTEM$SET_DEFAULT_COLUMNS_OVERRIDE_FOR_SYSTEM_OBJECT 함수를 호출하여 오브젝트의 유형, 뷰가 포함된 데이터베이스 및 스키마, 뷰의 이름, 반환되어야 하는 열 목록을 지정합니다.

ACCOUNT_USAGE 스키마 </sql-reference/account-usage/databases>`의 DATABASES 뷰에 새로운 ``replicable_with_failover_groups` 열이 도입되었다고 가정해 보겠습니다. 새로운 replicable_with_failover_groups 열이 뷰의 SELECT * 쿼리 결과에 반환되지 않도록 방지하려면 SYSTEM$SET_DEFAULT_COLUMNS_OVERRIDE_FOR_SYSTEM_OBJECT를 호출하여 ``’VIEW’``를 오브젝트의 유형으로, ``’SNOWFLAKE’``를 데이터베이스로, ``’ACCOUNT_USAGE’``를 스키마로, ``’TABLES’``를 뷰로 지정합니다. 출력에서 반환해야 하는 열의 쉼표로 구분된 목록(``replicable_with_failover_groups``을 제외한 목록)을 전달합니다.

SELECT SYSTEM$SET_DEFAULT_COLUMNS_OVERRIDE_FOR_SYSTEM_OBJECT(
  'VIEW',
  'SNOWFLAKE',
  'ACCOUNT_USAGE',
  'DATABASES',
  'database_id, database_name, database_owner, is_transient, ' ||
  'comment, created, last_altered, deleted, retention_time, '  ||
  'resource_group, type, owner_role_type, object_visibility'
);
Copy

이 예제에서는 || 연산자를 사용하여 쉼표로 구분된 열 목록을 포함하는 문자열을 구성합니다.

계정의 누군가가 DATABASES 뷰의 SELECT * 쿼리를 수행하는 경우, 새 replicable_with_failover_groups 열은 출력에 반환되지 않습니다.

SELECT * FROM SNOWFLAKE.ACCOUNT_USAGE.DATABASES;
Copy
+-------------+---------------+----------------+--------------+---------+-------------------------------+-------------------------------+-------------------------------+----------------+----------------+----------+-----------------+-------------------+
| DATABASE_ID | DATABASE_NAME | DATABASE_OWNER | IS_TRANSIENT | COMMENT | CREATED                       | LAST_ALTERED                  | DELETED                       | RETENTION_TIME | RESOURCE_GROUP | TYPE     | OWNER_ROLE_TYPE | OBJECT_VISIBILITY |
|-------------+---------------+----------------+--------------+---------+-------------------------------+-------------------------------+-------------------------------+----------------+----------------+----------+-----------------+-------------------|
|          55 | MY_DATABASE   | NULL           | NO           | NULL    | 2025-07-16 15:17:55.990 -0700 | 2025-07-17 15:19:52.305 -0700 | 2025-07-16 15:18:32.973 -0700 |              1 | NULL           | STANDARD | NULL            | NULL              |
+-------------+---------------+----------------+--------------+---------+-------------------------------+-------------------------------+-------------------------------+----------------+----------------+----------+-----------------+-------------------+

INFORMATION_SCHEMA 뷰에 대해 이 함수를 호출해야 하는 경우 데이터베이스 이름에 빈 문자열을 전달합니다. INFORMATION_SCHEMA 스키마 </sql-reference/info-schema/databases>`의 DATABASES 뷰 :code:`SELECT * 쿼리 결과에서 replicable_with_failover_groups 열을 제외하는 경우를 예로 들 수 있습니다.

SELECT SYSTEM$SET_DEFAULT_COLUMNS_OVERRIDE_FOR_SYSTEM_OBJECT(
  'VIEW',
  '',
  'INFORMATION_SCHEMA',
  'DATABASES',
  'database_name, database_owner, is_transient, comment, ' ||
  'created, last_altered, retention_time, type, '          ||
  'owner_role_type'
);
Copy

Snowflake 뷰의 기본 열 재설정하기

이전 SYSTEM$SET_DEFAULT_COLUMNS_OVERRIDE_FOR_SYSTEM_OBJECT 호출을 실행 취소하고 Snowflake 뷰의 SELECT * 쿼리에서 모든 열을 반환해야 하는 경우, SYSTEM$UNSET_DEFAULT_COLUMNS_OVERRIDE_FOR_SYSTEM_OBJECT 함수를 호출하여 오브젝트의 유형, 뷰가 포함된 데이터베이스 및 스키마, 뷰의 이름을 지정합니다. 예:

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

INFORMATION_SCHEMA 뷰에 대해 이 함수를 호출해야 하는 경우 데이터베이스 이름에 빈 문자열을 전달합니다. 예:

SELECT SYSTEM$UNSET_DEFAULT_COLUMNS_OVERRIDE_FOR_SYSTEM_OBJECT(
  'VIEW',
  '',
  'INFORMATION_SCHEMA',
  'DATABASES'
);
Copy

Snowflake 뷰의 기본 열 목록 가져오기

특정 뷰에 대해 SYSTEM$SET_DEFAULT_COLUMNS_OVERRIDE_FOR_SYSTEM_OBJECT가 호출되었는지 확인하고 해당 뷰의 SELECT * 쿼리에서 반환될 열 목록을 확인하려면 SYSTEM$GET_DEFAULT_COLUMNS_OVERRIDE_FOR_SYSTEM_OBJECT 함수를 호출하여 오브젝트의 유형, 뷰가 포함된 데이터베이스 및 스키마, 뷰의 이름을 지정합니다. 예:

SELECT SYSTEM$GET_DEFAULT_COLUMNS_OVERRIDE_FOR_SYSTEM_OBJECT(
  'VIEW',
  'SNOWFLAKE',
  'ACCOUNT_USAGE',
  'DATABASES'
);
Copy
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
| SYSTEM$GET_DEFAULT_COLUMNS_OVERRIDE_FOR_SYSTEM_OBJECT(                                                                                                          |
|   'VIEW',                                                                                                                                                       |
|   'SNOWFLAKE',                                                                                                                                                  |
|   'ACCOUNT_USAGE',                                                                                                                                              |
|   'DATABASES'                                                                                                                                                   |
| )                                                                                                                                                               |
|-----------------------------------------------------------------------------------------------------------------------------------------------------------------|
| DATABASE_ID,DATABASE_NAME,DATABASE_OWNER,IS_TRANSIENT,COMMENT,CREATED,LAST_ALTERED,DELETED,RETENTION_TIME,RESOURCE_GROUP,TYPE,OWNER_ROLE_TYPE,OBJECT_VISIBILITY |
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+

INFORMATION_SCHEMA 뷰에 대해 이 함수를 호출해야 하는 경우 데이터베이스 이름에 빈 문자열을 전달합니다. 예:

SELECT SYSTEM$GET_DEFAULT_COLUMNS_OVERRIDE_FOR_SYSTEM_OBJECT(
  'VIEW',
  '',
  'INFORMATION_SCHEMA',
  'DATABASES'
);
Copy
+------------------------------------------------------------------------------------------------------------+
| SYSTEM$GET_DEFAULT_COLUMNS_OVERRIDE_FOR_SYSTEM_OBJECT(                                                     |
|   'VIEW',                                                                                                  |
|   '',                                                                                                      |
|   'INFORMATION_SCHEMA',                                                                                    |
|   'DATABASES'                                                                                              |
| )                                                                                                          |
|------------------------------------------------------------------------------------------------------------|
| DATABASE_NAME,DATABASE_OWNER,IS_TRANSIENT,COMMENT,CREATED,LAST_ALTERED,RETENTION_TIME,TYPE,OWNER_ROLE_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',
  'DATABASES'
);

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

SHOW 명령 및 Snowflake 뷰에 대한 이전의 모든 호출에서 열 목록 가져오기

모든 SHOW 명령 및 Snowflake 뷰에 대해 재정의된 열 목록을 가져오려면 SYSTEM$GET_ALL_DEFAULT_COLUMNS_OVERRIDES 함수를 호출합니다. 예:

SELECT SYSTEM$GET_ALL_DEFAULT_COLUMNS_OVERRIDES();
Copy

이 함수는 오브젝트의 JSON 배열을 포함하는 문자열을 반환합니다. 각 오브젝트는 특정 SHOW 명령 또는 Snowflake 뷰에 대한 열 목록을 나타냅니다. 예:

+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| SYSTEM$GET_ALL_DEFAULT_COLUMNS_OVERRIDES()                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [{"domain":"VIEW","isShowCommand":false,"dbName":"","schemaName":"INFORMATION_SCHEMA","objectName":"DATABASES","serializedDefaultColumns":"DATABASE_NAME,DATABASE_OWNER,IS_TRANSIENT,COMMENT,CREATED,LAST_ALTERED,RETENTION_TIME,TYPE,OWNER_ROLE_TYPE"},{"domain":"VIEW","isShowCommand":false,"dbName":"SNOWFLAKE","schemaName":"ACCOUNT_USAGE","objectName":"DATABASES","serializedDefaultColumns":"DATABASE_ID,DATABASE_NAME,DATABASE_OWNER,IS_TRANSIENT,COMMENT,CREATED,LAST_ALTERED,DELETED,RETENTION_TIME,RESOURCE_GROUP,TYPE,OWNER_ROLE_TYPE,OBJECT_VISIBILITY"},{"isShowCommand":true,"showCommandType":"NOTIFICATION INTEGRATIONS","serializedDefaultColumns":"name,type,category,enabled,comment,created_on"}] |
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+

각 오브젝트의 이름/값 쌍에 대한 설명은 SYSTEM$GET_ALL_DEFAULT_COLUMNS_OVERRIDES 섹션을 참조하세요.

스크립트 및 코드를 업데이트하여 새 열의 도입으로 발생하는 문제 방지하기

새 열의 도입으로 인한 문제를 방지하려면 스크립트와 코드에서 SHOW 명령의 출력 및 Snowflake 뷰 쿼리 시 특정 열을 선택해야 합니다.

SHOW 명령의 출력에서 특정 열을 선택하려면 파이프 연산자 </sql-reference/operators-flow>`를 선택할 수 있습니다. :ref:`label-pipe_operator_example_show 의 예를 참조하십시오.