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'
);
계정의 누군가가 SHOW NOTIFICATION INTEGRATIONS 명령을 실행하는 경우, 새 direction 열은 출력에 반환되지 않습니다.
SHOW NOTIFICATION INTEGRATIONS;
+--------------------------------+---------+--------------+---------+---------+-------------------------------+
| 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'
);
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'
);
+-------------------------------------------------------+
| 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'
);
+-------------------------------------------------------+
| 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'
);
이 예제에서는 || 연산자를 사용하여 쉼표로 구분된 열 목록을 포함하는 문자열을 구성합니다.
계정의 누군가가 DATABASES 뷰의 SELECT * 쿼리를 수행하는 경우, 새 replicable_with_failover_groups 열은 출력에 반환되지 않습니다.
SELECT * FROM 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 |
|-------------+---------------+----------------+--------------+---------+-------------------------------+-------------------------------+-------------------------------+----------------+----------------+----------+-----------------+-------------------|
| 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'
);
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'
);
INFORMATION_SCHEMA 뷰에 대해 이 함수를 호출해야 하는 경우 데이터베이스 이름에 빈 문자열을 전달합니다. 예:
SELECT SYSTEM$UNSET_DEFAULT_COLUMNS_OVERRIDE_FOR_SYSTEM_OBJECT(
'VIEW',
'',
'INFORMATION_SCHEMA',
'DATABASES'
);
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'
);
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
| 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'
);
+------------------------------------------------------------------------------------------------------------+
| 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'
);
+--------------------------------------------------------+
| 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();
이 함수는 오브젝트의 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 의 예를 참조하십시오.