try_copy_file Fonction

S’applique à :check marqué oui Databricks SQL check marqué oui Databricks Runtime 18 LTS et versions ultérieures

Important

Cette fonctionnalité est en version bêta. Les administrateurs d’espace de travail peuvent contrôler l’accès à cette fonctionnalité à partir de la page Aperçus . Consultez Gérer les préversions d’Azure Databricks.

Copie un fichier sur un chemin de destination et renvoie une FILE référence, ou NULL si le fichier source n’existe pas ou est inaccessible. Ne pas destination copier le fichier dans un stockage géré par Unity Catalog, qui convertit une FILE EXTERNAL référence en référence FILE MANAGED .

Syntax

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

Vous pouvez présenter des arguments selon la position ou par nom. Après avoir passé un argument par nom, tous les arguments suivants doivent aussi être transmis par nom. Pour plus d’informations, voir invocation de paramètre nommé.

Arguments

  • file: Une FILE valeur à copier.
  • destination: Un optionnel STRING avec le chemin complet du fichier de destination, pas seulement un répertoire. Lorsqu’il est omis, le fichier est copié dans un stockage géré par le catalogue Unity, convertissant une FILE EXTERNAL référence en FILE MANAGED référence.
  • if_file_exists_mode: Un optionnel STRING qui définit le comportement lorsqu’un fichier existe déjà sur le chemin de destination. Cela ne s’applique qu’à l’utilisation de l’argument destination . Les valeurs acceptées (insensibles à la majuscule) sont :
    • 'error': Soulève une erreur. Il s’agit de la valeur par défaut.
    • 'overwrite': Écrase le fichier existant.
    • 'skip': Saute la copie et renvoie une FILE référence au fichier existant.

Returns

Une FILE valeur qui fait référence au fichier copié, ou NULL si le fichier source n’existe pas ou est inaccessible.

Remarques

  • Cette fonction est la version tolérante à l’erreur de lacopy_file fonction. Utilisez-le pour ignorer les erreurs lors de la conversion d’une FILE EXTERNAL référence en référence, FILE MANAGED que la conversion soit explicite (omission destination) ou automatique (insérer une FILE EXTERNAL valeur dans une FILE MANAGED colonne).
  • Si un fichier existe déjà sur le chemin de destination, Azure Databricks génère une erreur par défaut à moins que vous ne posiez if_file_exists_mode sur overwrite ou skip.

Conditions d’erreur courantes

  • COPY_FILE_ERROR.FILE_ALREADY_EXISTS
  • COPY_FILE_AUTHORIZATION_ERROR.WRITE_UNAUTHORIZED

Pour plus d’informations, voir Conditions d’erreur dans Azure Databricks.

Examples

Si le fichier source n’existe pas, try_copy_file retourne NULL:

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

Pour copier un fichier dans un stockage géré par Unity Catalog, en convertissant une FILE EXTERNAL référence en FILE MANAGED référence, omettez la destination :

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

Pour copier un fichier et écraser tout fichier de destination existant :

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