Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:
Databricks SQL
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_ZEROvagy 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óSIGNALutasítással állíthat elő. Ezek a kezelők képesek kezelni bármely feltételt, amely az adottSQLSTATE-hoz van társítva.Egy általános
SQLEXCEPTIONkezelő képes elkapni aSQLEXCEPTIONalá eső összes feltételt (bármely olyanSQLSTATE, amely nemXX***, és nem02***).
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ánosEXCEPTIONkezelő 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:
Databricks SQL
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ő:
- CASE utasítás
- BEGIN END összetett utasítás
- FOR utasítás
- GET DIAGNOSTICS nyilatkozat
- IF THEN ELSE szerkezet
- ITERATE utasítás
- LEAVE utasítás
- LOOP utasítás
- REPEAT utasítás
- LEMONDÁSi nyilatkozat
- SIGNAL utasítás
- WHILE utasítás