Megosztás a következőn keresztül:


SQL-szkriptelés

A következőkre vonatkozik:igen Databricks SQL igen Databricks Runtime 16.3 és újabb

Fontos

Ez a funkció a nyilvános előzetes verzióban van.

Hatékony eljárási logikát alkalmazhat az SQL/PSM standardalapú szkriptelési szintaxisával. Minden SQL-szkript egy összetett utasításból blokkból (BEGIN ... END) áll és kezdődik. Az összetett utasítás egy szakaszsal kezdődik, amely deklarálja a helyi változókat, a felhasználó által definiált feltételeket és a kivételeket észlelő feltételkezelőket. Ezt követi az összetett utasítás törzse, amely a következőkből áll:

  • A folyamatvezérlési utasítások közé tartoznak a predikátumkifejezéseken keresztüli hurkok, a lekérdezési eredményeken ciklusok, a feltételes logika, például a HA és CASE, valamint olyan ciklusok lebontását jelenti, mint a LEAVE és ITERATE.
  • DDL-utasítások, például ALTER, CREATE, DROP.
  • DCL (Data Control) utasítások, például GRANT és REVOKE.
  • DML-utasítások INSERT, UPDATE, DELETEés MERGE.
  • lekérdezések, amelyek eredményhalmazokat adnak vissza a szkript meghívójának.
  • SET utasításokat a helyi változók és a munkamenet-változók beállításához.
  • A EXECUTE IMMEDIATE utasítás.
  • Beágyazott összetett utasítások, amelyek beágyazott hatóköröket biztosítanak változók, feltételek és feltételkezelők számára.

Adatok továbbítása az meghívó és az összetett utasítás között

Sql-szkriptekbe kétféleképpen továbbíthat adatokat:

  • Munkamenet-változók használatával skaláris értékeket vagy kis tömbkészleteket vagy térképeket adhat át az egyik SQL-szkriptből a másikba.
  • Paraméterjelölőkkel skaláris értékeket vagy kis tömbkészleteket adhat át, vagy adatokat képezhet le egy jegyzetfüzet widgetéből, Pythonból vagy más nyelvről az SQL-szkriptbe.

Változó hatókörének meghatározása

Az összetett utasításban deklarált változók az összetett utasítás bármely kifejezésében hivatkozhatók. A Databricks a legbelső hatókörből oldja fel az azonosítókat kifelé, a Névfeloldásiszabályok szerint. Az opcionális összetett utasítás címkék használatával egyértelműsítheti az ismétlődő változóneveket.

Feltételkezelés

Az SQL Scripting támogatja a feltételkezelőket, amelyek az SQL-szkript EXIT feldolgozásának kivételeinek elfogására és feldolgozására szolgálnak. A feltételkezelőn belül újra RESIGNAL az eredeti kivételt, SIGNAL egy új kivételt generálhat, vagy kivétel nélkül kiléphet az összetett utasításból.

A feltételkezelők három különböző feltételosztály kezelésére határozhatók meg:

  • Egy vagy több nevesített feltétel, amely lehet egy adott Databricks által definiált hibaosztály, például DIVIDE_BY_ZERO vagy felhasználó által deklarált feltétel. Ezek a kezelők kezelik ezeket a konkrét feltételeket.

  • Egy vagy több SQLSTATE, amelyet a Databricks vagy egy felhasználó SIGNAL utasítással állíthat elő. Ezek a kezelők képesek kezelni bármely feltételt, amely az adott SQLSTATE-hoz van társítva.

  • Egy általános SQLEXCEPTION kezelő képes elkapni a SQLEXCEPTION alá eső összes feltételt (bármely olyan SQLSTATE, amely nem XX***, és nem 02***).

Az alábbiak alapján dönti el, hogy melyik feltételkezelő vonatkozik egy kivételre. Ezt a feltételkezelőt legmegfelelőbb kezelőnek nevezzük:

  • A feltételkezelő nem alkalmazható a saját törzsében vagy az ugyanabban az összetett utasításban deklarált feltételkezelő törzsében meghatározott bármely utasításra.

  • A legbelső összetett utasításban meghatározott, a kivételt előidéző feltételkezelők megfelelőek.

  • Ha egynél több megfelelő kezelő érhető el, a legmegfelelőbb a legspecifikusabb kezelő. Egy elnevezett feltételhez tartozó kezelő például konkrétabb, mint egy elnevezett SQLSTATEesetén. Az általános EXCEPTION kezelő a legkevésbé specifikus.

Ha egy kezelő nem SIGNALs vagy RESIGNALsaját feltételt, a feltételkezelő eredménye az, hogy a kezelőt a következő végrehajtására deklarált összetett utasítás után hajtja végre.

SQL-tárolt eljárások

Fontos

Ez a funkció a nyilvános előzetes verzióban van.

A következőkre vonatkozik: kipipált igen Databricks SQL kipipált igen Databricks Runtime 17.0 vagy újabb

A CREATE PROCEDURE utasítással megőrizhet egy SQL-szkriptet a Unity Catalogban. Ezután GRANT hozzáférést biztosíthat az eljáráshoz más jogosultaknak. A megbízók ezután a CALL utasítással invokálhatják az eljárást.

Vezérlőfolyamat-utasítások listája

A támogatott vezérlőfolyamat-utasítás listája a következő: