funktion try_copy_file

Gäller för:check markerad ja Databricks SQL-kontroll markerad ja Databricks Runtime 18 LTS och senare

Important

Den här funktionen finns i Beta. Arbetsyteadministratörer kan styra åtkomsten till den här funktionen från sidan Förhandsversioner . Se Hantera förhandsversioner av Azure Databricks.

Kopierar en fil till en destinationsväg och returnerar en FILE referens, eller NULL om källfilen inte existerar eller är otillgänglig. Glöm destination att kopiera filen till Unity Catalog-hanterad lagring, som konverterar en FILE EXTERNAL referens till en FILE MANAGED referens.

Syntax

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

Du kan skicka argument antingen positionellt eller med namn. Efter att du har passerat ett argument vid namn måste alla följande argument också skickas med namn. För mer information, se namngiven parameteranrop.

Arguments

  • file: Ett värde att kopiera FILE .
  • destination: Ett valfritt STRING med hela destinationsfilens sökväg, inte bara en katalog. När den utelämnas kopieras filen till lagring som hanteras av Unity Catalog, och en FILE EXTERNAL referens omvandlas till en FILE MANAGED referens.
  • if_file_exists_mode: Ett valfritt STRING som sätter beteendet när en fil redan finns vid destinationsvägen. Gäller endast när argumentet destination används. Godkända värden (kasuskänsliga) är:
    • 'error': Ger ett fel. Detta är standardvärdet.
    • 'overwrite': Skriver över den befintliga filen.
    • 'skip': Hoppar över kopiering och returnerar en FILE referens till den befintliga filen.

Returns

Ett värde som refererar FILE till den kopierade filen, eller NULL om källfilen inte existerar eller är otillgänglig.

Notes

  • Denna funktion är den feltoleranta versionen av copy_file funktionen. Använd den för att ignorera fel när du konverterar en FILE EXTERNAL referens till en FILE MANAGED referens, oavsett om konverteringen är explicit (utelämnar destination) eller automatisk (insättning av ett FILE EXTERNAL värde i en FILE MANAGED kolumn).
  • Om en fil redan finns vid destinationssökvägen ger Azure Databricks ett fel som standard, om du inte sätter if_file_exists_mode till overwrite eller skip.

Vanliga felvillkor

  • COPY_FILE_ERROR.FILE_ALREADY_EXISTS
  • COPY_FILE_AUTHORIZATION_ERROR.WRITE_UNAUTHORIZED

För mer information, se Felvillkor i Azure Databricks.

Examples

Om källfilen inte existerar, try_copy_file returnerar NULL:

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

För att kopiera en fil till lagring som hanteras av Unity Catalog, och konvertera en FILE EXTERNAL referens till en FILE MANAGED referens, utelämna destinationen:

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

För att kopiera en fil och skriva över en befintlig destinationsfil:

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