try_copy_file-Funktion

Gilt für:check marked yes Databricks SQL check marked yes Databricks Runtime 18 LTS and above

Important

Dieses Feature befindet sich in der Betaversion. Arbeitsbereichsadministratoren können den Zugriff auf dieses Feature über die Vorschauseite steuern. Siehe Manage Azure Databricks Previews.

Kopiert eine Datei auf einen Zielpfad und gibt eine FILE Referenz zurück, oder NULL wenn die Quelldatei nicht existiert oder nicht zugänglich ist. Versäumen destination , die Datei in den vom Unity Catalog verwalteten Speicher zu kopieren, der eine FILE EXTERNAL Referenz in eine Referenz FILE MANAGED umwandelt.

Syntax

try_copy_file(file => file
  [, destination => destination ]
  [, if_file_exists_mode => mode ])

Du kannst Argumente positionell oder mit dem Namen weitergeben. Nachdem Sie ein Argument beim Namen weitergegeben haben, müssen alle folgenden Argumente ebenfalls mit dem Namen weitergegeben werden. Für weitere Informationen siehe Aufruf von benannten Parametern.

Arguments

  • file: Ein FILE Wert, den man kopieren kann.
  • destination: Eine optionale STRING mit dem vollständigen Zielpfad, nicht nur einem Verzeichnis. Wenn sie weggelassen wird, wird die Datei in den von Unity Catalog verwalteten Speicher kopiert und eine FILE EXTERNAL Referenz in eine FILE MANAGED Referenz umgewandelt.
  • if_file_exists_mode: Ein optionales STRING Formular, das das Verhalten festlegt, wenn eine Datei bereits am Zielpfad existiert. Gilt nur, wenn das Argument verwendet wird destination . Akzeptierte Werte (kleinschreibungsunempfindlich) sind:
    • 'error': Führt zu einem Fehler. Dies ist der Standardwert.
    • 'overwrite': Überschreibt die bestehende Datei.
    • 'skip': Überspringt das Kopieren und gibt eine FILE Referenz auf die bestehende Datei zurück.

Rückkehr

Ein FILE Wert, der auf die kopierte Datei verweist, oder NULL falls die Quelldatei nicht existiert oder nicht zugänglich ist.

Hinweise

  • Diese Funktion ist die fehlertolerante Version der copy_file Funktion. Nutzen Sie es, um Fehler beim Umwandeln einer FILE EXTERNAL Referenz in eine Referenz zu ignorieren FILE MANAGED , egal ob die Umwandlung explizit (weglassend destination) oder automatisch (Einfügen eines Wertes FILE EXTERNAL in eine Spalte FILE MANAGED ) erfolgt.
  • Wenn eine Datei bereits am Zielpfad existiert, löst Azure Databricks standardmäßig einen Fehler aus, es sei denn, man setzt if_file_exists_mode auf overwrite oder skip.

Häufige Fehlerbedingungen

  • COPY_FILE_ERROR.FILE_ALREADY_EXISTS
  • COPY_FILE_AUTHORIZATION_ERROR.WRITE_UNAUTHORIZED

Weitere Informationen finden Sie unter Fehlerbedingungen in Azure Databricks.

Examples

Wenn die Quelldatei nicht existiert, try_copy_file gibt dies zurück:NULL

SELECT try_copy_file(deleted_file, destination => '/Volumes/archive/reports/report.pdf');
NULL

Um eine Datei in den von Unity Catalog verwalteten Speicher zu kopieren, indem eine FILE EXTERNAL Referenz in eine Referenz FILE MANAGED umgewandelt wird, lassen Sie das Ziel weg:

SELECT try_copy_file(to_file('/Volumes/source/data/input.csv'));

Um eine Datei zu kopieren und eine bestehende Zieldatei zu überschreiben:

SELECT try_copy_file(
  to_file('/Volumes/source/reports/report.pdf'),
  destination => '/Volumes/archive/reports/report.pdf',
  if_file_exists_mode => 'overwrite'
);