fungsi try_copy_file

Berlaku untuk:check ditandai ya pemeriksaan Databricks SQL ditandai ya Databricks Runtime 18 LTS ke atas

Important

Fitur ini ada di Beta. Admin ruang kerja dapat mengontrol akses ke fitur ini dari halaman Pratinjau . Lihat Kelola Pratinjau Azure Databricks.

Menyalin file ke jalur tujuan dan mengembalikan referensi FILE , atau NULL jika file sumber tidak ada atau tidak dapat diakses. Abaikan destination untuk menyalin file ke penyimpanan yang dikelola Unity Catalog, yang mengubah FILE EXTERNAL referensi menjadi FILE MANAGED referensi.

Syntax

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

Anda dapat meneruskan argumen secara posisi atau nama. Setelah Anda mengirimkan argumen berdasarkan nama, semua argumen berikut juga harus diteruskan berdasarkan nama. Untuk informasi lebih lanjut, lihat pemanggilan parameter bernama.

Arguments

  • file: Nilai yang FILE harus disalin.
  • destination: Opsional STRING dengan jalur file tujuan lengkap, bukan hanya direktori. Jika dihilangkan, file disalin ke penyimpanan yang dikelola Unity Catalog, mengonversi FILE EXTERNAL referensi menjadi FILE MANAGED referensi.
  • if_file_exists_mode: Opsional STRING yang mengatur perilaku ketika file sudah ada di jalur tujuan. Hanya berlaku saat menggunakan destination argumen. Nilai yang diterima (tidak sensitif huruf besar) adalah:
    • 'error': Muncul kesalahan. Ini adalah nilai default.
    • 'overwrite': Menimpa file yang sudah ada.
    • 'skip': Melewati penyalinan dan mengembalikan FILE referensi ke file yang ada.

Returns

FILE Nilai yang merujuk pada file yang disalin, atau NULL jika file sumber tidak ada atau tidak dapat diakses.

Catatan

  • Fungsi ini adalah versi copy_file fungsi yang tahan kesalahan. Gunakan untuk mengabaikan kesalahan saat mengonversi FILE EXTERNAL referensi menjadi FILE MANAGED referensi, baik konversi tersebut eksplisit (dihilangkan destination) maupun otomatis (memasukkan FILE EXTERNAL nilai ke dalam FILE MANAGED kolom).
  • Jika sebuah file sudah ada di jalur tujuan, Azure Databricks secara default akan muncul error kecuali Anda mengatur if_file_exists_mode ke overwrite atau skip.

Kondisi kesalahan umum

  • COPY_FILE_ERROR.FILE_ALREADY_EXISTS
  • COPY_FILE_AUTHORIZATION_ERROR.WRITE_UNAUTHORIZED

Untuk informasi lebih lanjut, lihat Kondisi kesalahan di Azure Databricks.

Examples

Jika file sumber tidak ada, try_copy_file mengembalikan NULL:

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

Untuk menyalin file ke penyimpanan yang dikelola Unity Catalog, mengonversi referensi FILE EXTERNAL menjadi FILE MANAGED referensi, hilangkan tujuan:

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

Untuk menyalin file dan menimpa file tujuan yang sudah ada:

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