TO_FILE¶
ファイルの場所またはメタデータから FILE タイプの値を構築します。
構文¶
次のいずれかを使用します。
TO_FILE( <stage_name>, <relative_path> ) TO_FILE( <file_url> ) TO_FILE( <metadata> )
引数¶
stage_name
ファイルが文字列として
'@stage_name'
の形式で配置されているステージの名前。relative_path
文字列として
stage_name
で指定されたステージ上のファイルへのパス。file_url
有効なステージまたはスコープ付きファイル URL を文字列で指定します。
metadata
必要な FILE メタデータを含む OBJECT。FILE には、 CONTENT_TYPE、 SIZE、 ETAG、 LAST_MODIFIED フィールドを指定する必要があります。また、以下のいずれかの方法でファイルの場所を指定する必要があります。
STAGE と RELATIVE_PATH の両方
STAGE_FILE_URL
SCOPED_FILE_URL
戻り値¶
ステージングされたファイルを表している FILE。
使用上の注意¶
次の場合、エラーが発生します。
指定された URL は無効である。
ユーザーがアクセス許可を持っていないステージにファイルがある。
提供されたメタデータに必須である FILE フィールドが含まれていない。
例¶
TO_FILE 関数をステージングされたファイル URL で使用する簡単な方法:
SELECT TO_FILE(BUILD_STAGE_FILE_URL('@mystage', 'image.png'));
+--------------------------------------------------------------------------------------------------------------------+
| TO_FILE(BUILD_STAGE_FILE_URL('@MYSTAGE', 'IMAGE.PNG')) |
|--------------------------------------------------------------------------------------------------------------------|
| { |
| "CONTENT_TYPE": "image/png", |
| "ETAG": "..." |
| "LAST_MODIFIED": "Wed, 11 Dec 2024 20:24:00 GMT", |
| "RELATIVE_PATH": "image.png", |
| "SIZE": 105859, |
| "STAGE": "@MYDB.MYSCHEMA.MYSTAGE", |
| "STAGE_FILE_URL": "https://snowflake.account.snowflakecomputing.com/api/files/MYDB/MYSCHEMA/MYSTAGE/image.png" |
| } |
+--------------------------------------------------------------------------------------------------------------------+
または、ステージのディレクトリテーブルから FILE_URL を使用する:
SELECT TO_FILE(file_url) FROM DIRECTORY(@mystage) LIMIT 1;
+--------------------------------------------------------------------------------------------------------------------+
| TO_FILE(FILE_URL) |
|--------------------------------------------------------------------------------------------------------------------|
| { |
| "CONTENT_TYPE": "image/png", |
| "ETAG": "..." |
| "LAST_MODIFIED": "Wed, 11 Dec 2024 20:24:00 GMT", |
| "RELATIVE_PATH": "image.png", |
| "SIZE": 105859, |
| "STAGE": "@MYDB.MYSCHEMA.MYSTAGE", |
| "STAGE_FILE_URL": "https://snowflake.account.snowflakecomputing.com/api/files/MYDB/MYSCHEMA/MYSTAGE/image.png" |
| } |
+--------------------------------------------------------------------------------------------------------------------+
この例では、スコープ付きファイル URL を使って TO_FILE 関数を直接使用しています。
SELECT TO_FILE(`https://snowflake.account.snowflakecomputing.com/api/files/01ba4df2-0100-0001-0000-00040002e2b6/299017/Y6JShH6KjV`);
+------------------------------------------------------------------------------------------------------------------------------------------------+
| TO_FILE(https://snowflake.account.snowflakecomputing.com/api/files/01ba4df2-0100-0001-0000-00040002e2b6/299017/Y6JShH6KjV |
|------------------------------------------------------------------------------------------------------------------------------------------------|
| { |
| "CONTENT_TYPE": "image/png", |
| "ETAG": "..." |
| "LAST_MODIFIED": "Wed, 11 Dec 2024 20:24:00 GMT", |
| "SCOPED_FILE_URL": "https://snowflake.account.snowflakecomputing.com/api/files/01ba4df2-0100-0001-0000-00040002e2b6/299017/Y6JShH6KjV", |
| "SIZE": 105859 |
| } |
+-----------------------------------------------------------------------------------------------------------------------------------------------+|
これは、必要なメタデータを含むオブジェクトから FILE を構築する例を示しています。
SELECT TO_FILE(OBJECT_CONSTRUCT('STAGE', 'MYSTAGE', 'RELATIVE_PATH', 'image.png', 'ETAG', '<ETAG value>',
'LAST_MODIFIED', 'Wed, 11 Dec 2024 20:24:00 GMT', 'SIZE', 105859, 'CONTENT_TYPE', 'image/png'));
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| TO_FILE(OBJECT_CONSTRUCT('STAGE', 'MYSTAGE', 'RELATIVE_PATH', 'IMAGE.PNG', 'ETAG', '<ETAG value>', 'LAST_MODIFIED', 'WED, 11 DEC 2024 20:24:00 GMT', 'SIZE', 105859, 'CONTENT_TYPE', 'IMAGE/PNG')) |
|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| { |
| "CONTENT_TYPE": "image/png", |
| "ETAG": "<ETAG value>>" |
| "LAST_MODIFIED": "Wed, 11 Dec 2024 20:24:00 GMT", |
| "RELATIVE_PATH": "image.png", |
| "SIZE": 105859, |
| "STAGE": "@MYDB.MYSCHEMA.MYSTAGE" |
| } |
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
既知の制限¶
TO_FILE は、 INSERT INTO TABLE <t> VALUES 句では使用できません。代わりに、 INSERT INTO TABLE <t> SELECT を使用します。
現在、 TO_FILE はステージ名が二重引用符で囲まれているステージでは動作しません。例: @"MYsTAgE"。