Aracılığıyla paylaş


SQL betik yazımı

Şunun için geçerlidir:evet olarak işaretlendi Databricks SQL evet olarak işaretlendi Databricks Runtime 16.3 ve üzeri

Önemli

Bu özellik Genel Önizlemesürümündedir.

SQL/PSM standart tabanlı betik sözdizimini kullanarak güçlü yordamsal mantık kullanabilirsiniz. Herhangi bir SQL komut dosyası, bileşik deyimi bloğundan (BEGIN ... END) oluşur ve böyle başlar. Bileşik deyim, özel durumları yakalamak için kullanılan yerel değişkenleri, kullanıcı tanımlı koşulları ve koşul işleyicilerini bildirmek için bir bölümle başlar. Bunu aşağıdakilerden oluşan bileşik deyim gövdesi izler:

Çağıran ile bileşik deyim arasında veri geçirme

SQL betiğine veri geçirmenin iki yolu vardır:

  • Bir SQL betiğinden diğerine skaler değerler veya küçük dizi veya eşleme kümeleri geçirmek için oturum değişkenlerini kullanın.
  • Skaler değerleri veya küçük dizi kümelerini geçirmek veya verileri not defteri pencere öğesinden, Python'dan veya başka bir dilden SQL Betiği'ne eşlemek için parametre işaretçilerini kullanın.

Değişken kapsam belirleme

Bileşik deyim içinde bildirilen değişkenlere bileşik deyim içindeki herhangi bir ifadede başvurulabilir. Databricks, Ad Çözümlemesi'nde açıklanan kuralları izleyerek en iç kapsamdan dışa doğru tanımlayıcıları çözümler. Yinelenen değişken adlarınıayırt etmek için isteğe bağlı bileşik deyim etiketlerini kullanabilirsiniz.

Koşul işleme

EXIT SQL betiğinin işlenmesi sırasında özel durumları yakalamak ve işlemek için kullanılan koşul işleyicilerini destekler. Koşul işleyicisi içinde, özgün özel durumu yeniden sinyallayabilir, SIGNAL yeni bir özel durum oluşturabilir veya özel durum olmadan bileşik deyiminden çıkabilirsiniz.

Koşul işleyicileri, üç ayrı koşul sınıfını işlemek için tanımlanabilir:

  • DIVIDE_BY_ZERO veya kullanıcı tarafından bildirilen bir koşul gibi belirli bir Databricks tanımlı hata sınıfı olabilecek bir veya daha fazla adlandırılmış koşul. Bu işleyiciler bu özel koşulları ele alır.

  • Databricks veya kullanıcı SQLSTATE deyimi tarafından yükseltilebilen bir veya daha fazla SIGNAL. Bu işleyiciler, bu SQLSTATEile ilişkili tüm koşulları işleyebilir.

  • Genel bir SQLEXCEPTION işleyicisi, (SQLEXCEPTION olmayan ve SQLSTATEolmayan herhangi bir XX***) olan 02***'e düşen tüm koşulları yakalayabilir.

Aşağıdakiler, bir özel duruma hangi koşul işleyicisinin uygulanacağına karar vermek için kullanılır. Bu koşul işleyicisi en uygunişleyici olarak adlandırılır:

  • Bir koşul işleyicisi, kendi gövdesinde tanımlanan herhangi bir deyime veya aynı bileşik deyimde bildirilen herhangi bir koşul işleyicisinin gövdesine uygulanamaz.

  • Özel durumun oluşturulduğu en içteki bileşik deyimde tanımlanan geçerli koşul işleyicileri uygundur.

  • Birden fazla uygun işleyici varsa, en özel işleyici en uygun işleyicidir. Örneğin, adlandırılmış bir koşul üzerindeki işleyici, adlandırılmış bir SQLSTATEüzerindekine göre daha özeldir. Genel EXCEPTION işleyicisi en az özeldir.

Bir işleyici kendi SIGNALveya RESIGNALkoşulunu karşılamadığı sürece, bir koşul işleyicisinin sonucu, işleyiciyi belirten bileşik deyimden sonra gelen deyimi yürütmektir.

SQL Depolanan Prosedürler

Önemli

Bu özellik Genel Önizlemesürümündedir.

Şunlar için geçerlidir: evet olarak işaretlendi Databricks SQL evet olarak işaretlendi Databricks Runtime 17.0 ve üzeri

CREATE PROCEDURE deyimini kullanarak Unity Kataloğu'nda bir SQL Betiğini kalıcı hale ekleyebilirsiniz. Daha sonra GRANT prosedüre diğer yetkililere erişim verebilirsiniz. Bu yöneticiler daha sonra yordamı çağırmak için CALL deyimini kullanabilirler.

Kontrol Akışı İfadelerinin Listesi

Desteklenen denetim akışı deyiminin listesi aşağıdadır: