Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk:
Databricks SQL
Databricks Runtime 16.3 ke atas
Penting
Fitur ini ada di Pratinjau Umum.
Anda dapat menggunakan logika prosedural yang kuat menggunakan sintaks skrip berbasis standar SQL/PSM.
Setiap skrip SQL dimulai dengan blok pernyataan majemuk (BEGIN ... END).
Pernyataan majemuk dimulai dengan bagian untuk mendeklarasikan variabel lokal, kondisi yang ditentukan pengguna, dan penangan kondisi, yang digunakan untuk menangkap pengecualian.
Ini diikuti oleh isi pernyataan senyawa, yang terdiri dari:
- Pernyataan kontrol alur mencakup perulangan atas ekspresi predikat, perulangan FOR atas hasil kueri, logika kondisional seperti IF dan CASE, dan cara untuk keluar dari perulangan seperti LEAVE dan ITERATE.
- Pernyataan DDL seperti
ALTER,CREATE,DROP. - Pernyataan DCL (Pengendalian Data) seperti GRANT dan REVOKE.
- Pernyataan DML INSERT, UPDATE, DELETE, dan MERGE.
- Kueri yang mengembalikan tataan hasil ke pemanggil skrip.
- SET pernyataan untuk mengatur variabel lokal serta variabel sesi.
- Pernyataan EXECUTE IMMEDIATE.
- Pernyataan majemuk bertingkat, yang menyediakan cakupan bertingkat untuk variabel, kondisi, dan penangan kondisi.
Meneruskan data antara pemanggil dan pernyataan gabungan
Ada dua cara untuk meneruskan data ke dan dari skrip SQL:
- Gunakan variabel sesi untuk meneruskan nilai skalar atau set kecil array atau peta dari satu skrip SQL ke skrip SQL lainnya.
- Gunakan penanda parameter untuk meneruskan nilai skalar atau kumpulan kecil array atau data peta dari widget notebook, Python, atau bahasa lain ke Skrip SQL.
Cakupan variabel
Variabel yang dideklarasikan dalam pernyataan gabungan dapat direferensikan dalam ekspresi apa pun dalam pernyataan gabungan. Databricks menentukan pengidentifikasi dari cakupan paling dalam ke luar, mengikuti aturan yang dijelaskan dalam bagian Resolusi Nama . Anda dapat menggunakan pernyataan majemuk opsional label untuk menjelaskan nama variabel yang duplikat.
Penanganan kondisi
SQL Scripting mendukung penanganan kondisi, yang digunakan untuk memproses dan mencegat pengecualian terhadap EXIT dalam pemrosesan skrip SQL.
Dalam penangan kondisi, Anda dapat MENANDA-ULANG pengecualian asli, MENANDAKAN pengecualian baru, atau keluar dari pernyataan majemuk tanpa pengecualian.
Penangan kondisi dapat didefinisikan untuk menangani tiga kelas kondisi yang berbeda:
Satu atau beberapa kondisi bernama yang dapat menjadi kelas kesalahan tertentu yang ditentukan Databricks seperti
DIVIDE_BY_ZEROatau kondisi yang dideklarasikan pengguna. Handler ini menangani kondisi spesifik ini.Satu atau beberapa
SQLSTATE, yang dapat dimunculkan oleh Databricks atau pernyataanSIGNALpengguna. Handler ini dapat menangani kondisi apa pun yang terkait denganSQLSTATEtersebut.Handler
SQLEXCEPTIONyang umum dapat menangkap semua kondisi yang jatuh ke dalamSQLEXCEPTION(SQLSTATEapa pun yang bukanXX***dan bukan02***).
Berikut ini digunakan untuk menentukan penanganan kondisi yang mana berlaku untuk pengecualian. Penangan kondisi ini disebut handler yang paling tepat:
Penangan kondisi tidak dapat berlaku untuk pernyataan apa pun yang ditentukan dalam isinya sendiri atau isi penangan kondisi apa pun yang dideklarasikan dalam pernyataan senyawa yang sama.
Penangan pengendali kondisi yang berlaku didefinisikan dalam pernyataan gabungan terdalam di mana pengecualian terjadi dan sesuai dengan kebutuhan.
Jika tersedia lebih dari satu handler yang sesuai, handler yang paling spesifik adalah yang paling tepat. Misalnya, handler pada kondisi bernama lebih spesifik daripada yang ada di
SQLSTATEbernama . HandlerEXCEPTIONgenerik adalah yang paling tidak spesifik.
Kecuali jika handler SIGNALatau RESIGNALmemiliki kondisi sendiri, hasil dari penanganan kondisi adalah untuk menjalankan pernyataan yang mengikuti pernyataan gabungan yang menyatakan handler untuk dieksekusi selanjutnya.
Prosedur Tersimpan SQL
Penting
Fitur ini ada di Pratinjau Umum.
Berlaku untuk:
Databricks SQL
Databricks Runtime 17.0 ke atas
Menggunakan pernyataan CREATE PROCEDURE , Anda dapat mempertahankan Skrip SQL di Katalog Unity. Anda kemudian dapat memberikan akses ke prosedur kepada prinsipal lain. Prinsipal tersebut kemudian dapat menggunakan pernyataan CALL untuk memanggil prosedur.
Daftar Pernyataan Alur Kontrol
Berikut ini adalah daftar pernyataan alur kontrol yang didukung:
- Pernyataan CASE
- Pernyataan gabungan BEGIN END
- Pernyataan FOR
- GET Pernyataan DIAGNOSTIK
- Pernyataan IF THEN ELSE
- Perintah ITERATE
- Pernyataan LEAVE
- Pernyataan LOOP
- Pernyataan REPEAT
- Pernyataan RESIGNAL
- Pernyataan SIGNAL
- Pernyataan WHILE