try_copy_file functie

Van toepassing op:controleren gemarkeerd ja Databricks SQL-controle gemarkeerd als ja Databricks Runtime 18 LTS en hoger

Important

Deze functie bevindt zich in de bètaversie. Werkruimtebeheerders kunnen de toegang tot deze functie beheren vanaf de pagina Previews . Zie Azure Databricks previews beheren.

Kopieert een bestand naar een bestemmingspad en geeft een FILE referentie terug, of NULL als het bronbestand niet bestaat of niet toegankelijk is. Laat het bestand niet destination kopiëren naar door de Unity Catalog beheerde opslag, die een FILE EXTERNAL referentie omzet in een FILE MANAGED referentie.

Syntax

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

Je kunt argumenten positioneel of op naam doorgeven. Nadat je een argument bij naam hebt doorgegeven, moeten alle volgende argumenten ook bij naam worden doorgegeven. Voor meer informatie, zie aanroep van benoemde parameters.

Arguments

  • file: Een waarde om te kopiëren FILE .
  • destination: Een optioneel STRING met het volledige bestemmingsbestandpad, niet alleen een map. Wanneer het bestand wordt weggelaten, wordt het gekopieerd naar door de Unity Catalog beheerde opslag, waarbij een FILE EXTERNAL referentie wordt omgezet in een FILE MANAGED referentie.
  • if_file_exists_mode: Een optioneel STRING systeem dat het gedrag instelt wanneer een bestand al op het bestemmingspad bestaat. Gilt alleen bij gebruik van het destination argument. Geaccepteerde waarden (hoofdlettergevoelig) zijn:
    • 'error': Geeft een fout. Dit is de standaardwaarde.
    • 'overwrite': Overschrijft het bestaande bestand.
    • 'skip': Slaat kopiëren over en geeft een FILE verwijzing terug naar het bestaande bestand.

Returns

Een FILE waarde die verwijst naar het gekopieerde bestand, of NULL als het bronbestand niet bestaat of ontoegankelijk is.

Aantekeningen

  • Deze functie is de fouttolerante versie van decopy_file functie. Gebruik het om fouten te negeren bij het omzetten van een FILE EXTERNAL referentie naar een FILE MANAGED referentie, of de conversie nu expliciet is (weglatend destination) of automatisch (het invoegen van een FILE EXTERNAL waarde in een FILE MANAGED kolom).
  • Als er al een bestand bestaat op het bestemmingspad, geeft Azure Databricks standaard een foutmelding, tenzij je op overwrite of skipzetif_file_exists_mode.

Algemene foutvoorwaarden

  • COPY_FILE_ERROR.FILE_ALREADY_EXISTS
  • COPY_FILE_AUTHORIZATION_ERROR.WRITE_UNAUTHORIZED

Voor meer informatie, zie Foutvoorwaarden in Azure Databricks.

Examples

Als het bronbestand niet bestaat, try_copy_file geeft het volgende terug:NULL

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

Om een bestand te kopiëren naar door Unity Catalog beheerde opslag, waarbij een FILE EXTERNAL referentie wordt omgezet naar een FILE MANAGED referentie, laat je de bestemming uit:

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

Om een bestand te kopiëren en een bestaand bestemmingsbestand over te schrijven:

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