try_copy_file Função

Aplica-se a:assinalado Databricks SQL assinalado sim Databricks Runtime 18 LTS e superiores

Importante

Este recurso está em versão Beta. Os administradores do espaço de trabalho podem controlar o acesso a esse recurso na página Visualizações . Ver Gerir as pré-visualizações de Azure Databricks.

Copia um ficheiro para um caminho de destino e devolve uma FILE referência, ou NULL se o ficheiro de origem não existir ou for inacessível. Omita destination copiar o ficheiro para armazenamento gerido pelo Unity Catalog, que converte uma FILE EXTERNAL referência numa FILE MANAGED referência.

Syntax

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

Podes apresentar argumentos por posição ou pelo nome. Depois de passar um argumento pelo nome, todos os argumentos seguintes também devem ser passados pelo nome. Para mais informações, veja invocação de parâmetro nomeado.

Arguments

  • file: Um FILE valor a copiar.
  • destination: Um opcional STRING com o caminho completo do ficheiro de destino, não apenas um diretório. Quando omitido, o ficheiro é copiado para armazenamento gerido pelo Unity Catalog, convertendo uma FILE EXTERNAL referência numa FILE MANAGED referência.
  • if_file_exists_mode: Um opcional STRING que define o comportamento quando um ficheiro já existe no caminho de destino. Aplica-se apenas quando se usa o argumento destination . Os valores aceites (indiferentes a maiúsculas minúsculas) são:
    • 'error': Levanta um erro. Este é o valor padrão.
    • 'overwrite': Sobrescreve o ficheiro existente.
    • 'skip': Ignora a cópia e retorna uma FILE referência ao ficheiro existente.

Devoluções

Um FILE valor que faz referência ao ficheiro copiado, ou NULL se o ficheiro fonte não existir ou for inacessível.

Notes

  • Esta função é a versão tolerante a erros da copy_file função. Use-o para ignorar erros ao converter uma FILE EXTERNAL referência numa FILE MANAGED referência, quer a conversão seja explícita (omitindo destination) ou automática (inserir um FILE EXTERNAL valor numa FILE MANAGED coluna).
  • Se um ficheiro já existir no caminho de destino, o Azure Databricks gera um erro por defeito, a menos que defina if_file_exists_mode para overwrite ou skip.

Condições de erro comuns

  • COPY_FILE_ERROR.FILE_ALREADY_EXISTS
  • COPY_FILE_AUTHORIZATION_ERROR.WRITE_UNAUTHORIZED

Para mais informações, veja Condições de erro no Azure Databricks.

Examples

Se o ficheiro fonte não existir, try_copy_file devolve NULL:

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

Para copiar um ficheiro para armazenamento gerido pelo Unity Catalog, convertendo uma FILE EXTERNAL referência numa FILE MANAGED referência, omita o destino:

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

Para copiar um ficheiro e sobrescrever qualquer ficheiro de destino existente:

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