try_copy_file 関数

適用対象:はい 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 Databricksif_file_exists_modeoverwriteskipに設定しない限り、デフォルトでエラーが発生します。

一般的なエラー状態

  • COPY_FILE_ERROR.FILE_ALREADY_EXISTS
  • COPY_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'
);