カテゴリ:

システム関数 (制御)

SYSTEM$SET_DEFAULT_COLUMNS_OVERRIDE_FOR_SYSTEM_OBJECT

指定されたSnowflakeビューから(例: 特定の ACCOUNT_USAGE ビュー または INFORMATION_SCHEMA ビュー から)すべての列を選択(SELECT *)したときに返される列を制御します。

注釈

この関数は、ビューから特定の列を選択するクエリには影響しません。

Snowflakeビューに新しい列が導入されたことで、すべての列を選択し、結果の列の固定数または順序に依存するスクリプトまたはコードに問題が発生した場合は、この関数を呼び出すことができます。SHOW コマンド出力とSnowflakeビューでの新しい列の処理 をご参照ください。

こちらもご参照ください。

SYSTEM$GET_DEFAULT_COLUMNS_OVERRIDE_FOR_SYSTEM_OBJECTSYSTEM$UNSET_DEFAULT_COLUMNS_OVERRIDE_FOR_SYSTEM_OBJECTSYSTEM$GET_ALL_DEFAULT_COLUMNS_OVERRIDES

構文

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

引数

'object_type'

オブジェクトの型。この引数に対して 'VIEW' を指定する必要があります。

'database_name'

オブジェクトを含むデータベースの名前。'SNOWFLAKE' を指定する必要があります。または、INFORMATION_SCHEMA ビューの場合は、空の文字列を指定する必要があります。

'schema_name'

オブジェクトを含むスキーマの名前。SNOWFLAKE データベース または 'INFORMATION_SCHEMA' でスキーマの名前を指定する必要があります。

'object_name'

オブジェクトの名前です。

list_of_columns

このビューからすべての列を選択した際に返される必要のある列のコンマ区切りまたはスペース区切りのリスト。

列名は、大文字、小文字、または大文字と小文字の組み合わせで指定できます。

すべての列を返すには、空の文字列を指定するか、SYSTEM$UNSET_DEFAULT_COLUMNS_OVERRIDE_FOR_SYSTEM_OBJECT を呼び出します。

戻り値

操作が成功した場合は TRUE が返されます。

アクセス制御の要件

アカウント管理者(ACCOUNTADMIN ロールを付与されているユーザー)のみが、この関数を呼び出すことができます。

使用上の注意

  • この関数を呼び出すには、使用中のデータベースが必要です(例: USE DATABASE を呼び出すことによる)。使用中のデータベースがない場合、関数の呼び出しは失敗します。

次の例では、table_name 列、table_schema 列および table_type 列のみを返すように ACCOUNT_USAGE スキーマの TABLES ビュー ビューからすべての列を選択するクエリを構成しています。

SELECT SYSTEM$SET_DEFAULT_COLUMNS_OVERRIDE_FOR_SYSTEM_OBJECT(
  'VIEW',
  'SNOWFLAKE',
  'ACCOUNT_USAGE',
  'TABLES',
  'table_name, table_schema, table_type'
);
Copy

そのビューからすべての列を選択すると、指定した列のみが返されます。

SELECT * FROM SNOWFLAKE.ACCOUNT_USAGE.TABLES;
Copy
+------------+---------------------+------------+
| TABLE_NAME | TABLE_SCHEMA        | TABLE_TYPE |
|------------+---------------------+------------|
| MY_TABLE   | MY_SCHEMA           | BASE TABLE |
+------------+---------------------+------------+

次の例では、table_name 列、table_schema 列および table_type 列のみを返すように INFORMATION_SCHEMA スキーマの TABLES ビュー ビューからすべての列を選択するクエリを構成しています。

SELECT SYSTEM$SET_DEFAULT_COLUMNS_OVERRIDE_FOR_SYSTEM_OBJECT(
  'VIEW',
  '',
  'INFORMATION_SCHEMA',
  'TABLES',
  'table_name, table_schema, table_type'
);
Copy

そのビューからすべての列を選択すると、指定した列のみが返されます。

SELECT * FROM INFORMATION_SCHEMA.TABLES;
Copy
+--------------+------------+------------+
| TABLE_SCHEMA | TABLE_NAME | TABLE_TYPE |
|--------------+------------+------------|
| MY_SCHEMA    | MY_TABLE   | BASE TABLE |
+--------------+------------+------------+