Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunun için geçerlidir:
Databricks SQL
Databricks Runtime 16.3 ve üzeri
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, imleçleri, 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:
- Akış kontrol ifadeleri; koşul ifadeleri üzerinde döngüler, sorgu sonuçları üzerinde FOR döngüleri, IF ve CASEgibi koşullu mantık ve döngülerden çıkmayı sağlayan yapılar, örneğin LEAVE ve ITERATEiçerir.
- OPEN, FETCH ve CLOSE deyimleriyle imleç işleme (Databricks Runtime 18.1 ve üzeri).
-
ALTER,CREATE,DROPgibi DDL deyimleri. - GRANT ve REVOKEgibi DCL (Veri Denetimi) deyimleri.
- DML deyimleri INSERT, UPDATE, DELETEve MERGE.
- Betiğin çağırıcısına sonuç kümeleri döndüren sorgular.
- yerel değişkenleri ve yerel oturum değişkenlerini ayarlamak için SET ifadeleri.
- EXECUTE IMMEDIATE ifadesi.
- Değişkenler, imleçler, koşullar ve koşul işleyicileri için iç içe kapsamlar sağlayan iç içe bileşik deyimler.
Ç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 ve imleç kapsamı
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.
Bileşik deyim içinde bildirilen imleçlere , OPENve FETCH deyimlerinde CLOSEbu bileşik deyim içinde başvurulabilir. Değişkenler gibi, iç içe yerleştirilmiş kapsamlarda yinelenen imleç adlarının belirsiz olmasını sağlamak için isteğe bağlı bileşik deyim etiketlerini kullanabilirsiniz.
Koşul işleme
SQL Betiği, bileşik deyim veya EXIT yürütme (Databricks Runtime 18.1 ve üzeri) için özel durumları kesmek ve işlemek için CONTINUE 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_ZEROveya 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ı
SQLSTATEdeyimi tarafından yükseltilebilen bir veya daha fazlaSIGNAL. Bu işleyiciler, buSQLSTATEile ilişkili tüm koşulları işleyebilir.Genel bir
SQLEXCEPTIONişleyicisi, (SQLEXCEPTIONolmayan veSQLSTATEolmayan herhangi birXX***) olan02***'e düşen tüm koşulları yakalayabilir.İşleyici
NOT FOUND, bir imleç sonuç kümesinin (Databricks Runtime 18.1 ve üzeri) sonuna getirildiğinde ortaya çıkan'02xxx'koşulunu içeren SQLSTATE sınıfıyla tüm koşulları yakalar.
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. GenelEXCEPTIONişleyicisi en az özeldir.
Koşul işleyicisinin sonucu aşağıdaki gibidir:
- İşleyici
EXITdeyimini yürütür, ardından işleyiciyi bildiren bileşik deyiminden çıkar. Bu bileşik deyim ve iç içe bileşik deyimler içinde açılan tüm imleçler örtük olarak kapatılır. - İşleyici
CONTINUEdeyimini yürütür, ardından koşulu oluşturan deyimini izleyerek yürütmeye devam eder. - Bir işleyici kendi
SIGNALveyaRESIGNALkoş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
Şunlar için geçerlidir:
Databricks SQL
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:
- CASE deyimi
- CLOSE deyimi
- BEGIN END bileşik deyimi
- FETCH deyimi
- for deyimi
- GET DIAGNOSTICS ifadesi
- IF THEN ELSE deyimi
- ITERATE deyimi
- LEAVE deyimi
- LOOP deyimi
- OPEN deyimi
- repeat deyimi
- İSTIFA bildirimi
- signal deyimi
- WHILE ifadesi
İmleç Deyimleri Listesi
Aşağıdaki imleç deyimleri Databricks Runtime 18.1 ve üzerinde desteklenir. İmleçler bileşik deyiminde bildirilir.