適用対象:
Databricks SQL
Databricks Runtime 18 LTS 以上" とマークされているチェック
Important
この機能は ベータ版です。 ワークスペース管理者は、[ プレビュー] ページからこの機能へのアクセスを制御できます。 Manage Azure Databricks プレビューを参照してください。
ファイルを宛先パスにコピーし、 FILE 参照を返します。元のファイルが存在しない場合やアクセスできない場合は NULL 参照を返します。 Unityカタログ管理ストレージにファイルをコピーする destination 省略してください。このストレージは FILE EXTERNAL 参照を FILE MANAGED 参照に変換します。
構文
try_copy_file(file => file
[, destination => destination ]
[, if_file_exists_mode => mode ])
議論はポジションで、または名前で伝えることができます。 引数を名前で渡した後は、その後のすべての引数も名前で渡さなければなりません。 詳細は 「名前付きパラメータ呼び出し」を参照してください。
Arguments
-
file:コピーすべきFILE価値。 -
destination: ディレクトリだけでなく、完全な宛先ファイルパスを持つオプションのSTRING。 省略された場合、そのファイルはUnity Catalog管理ストレージにコピーされ、FILE EXTERNAL参照がFILE MANAGED参照に変換されます。 -
if_file_exists_mode: これは、宛先パスにファイルが存在する場合に動作を設定するオプションのSTRINGです。destination論点を用いる場合にのみ適用されます。 受け入れ値(大文字に区別されない)は以下の通りです:-
'error':エラーが出ます。 これが既定値です。 -
'overwrite': は既存のファイルを上書きします。 -
'skip': コピーをスキップし、既存のファイルへのFILE参照を返します。
-
返品
コピーしたファイルを参照する FILE 値、またはソースファイルが存在しないかアクセスできない場合は NULL です。
メモ
- この関数は
copy_file関数の誤り許容バージョンです。 この方法を使って、FILE EXTERNAL参照をFILE MANAGED参照に変換する際の誤りを無視します。変換が明示的(destinationを省略)であれ自動的であれ(FILE EXTERNAL値をFILE MANAGED列に挿入するなど)です。 - もし宛先パスにすでにファイルが存在する場合、Azure Databricks
if_file_exists_modeをoverwriteかskipに設定しない限り、デフォルトでエラーが発生します。
一般的なエラー状態
COPY_FILE_ERROR.FILE_ALREADY_EXISTSCOPY_FILE_AUTHORIZATION_ERROR.WRITE_UNAUTHORIZED
詳細については、「Azure Databricksのエラー条件」をご覧ください。
例示
ソースファイルが存在しない場合は、try_copy_fileNULLを返します:
SELECT try_copy_file(deleted_file, destination => '/Volumes/archive/reports/report.pdf');
NULL
Unityカタログ管理ストレージにファイルをコピーし、 FILE EXTERNAL 参照を FILE MANAGED 参照に変換するには、宛先を省略してください:
SELECT try_copy_file(to_file('/Volumes/source/data/input.csv'));
ファイルをコピーし、既存の宛先ファイルを上書きするには:
SELECT try_copy_file(
to_file('/Volumes/source/reports/report.pdf'),
destination => '/Volumes/archive/reports/report.pdf',
if_file_exists_mode => 'overwrite'
);