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


AZ ELJÁRÁS LÉTREHOZÁSA

Fontos

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

A következőkre vonatkozik:igen bejelölve a Databricks SQL Databricks Runtime 17.0 és újabb igen bejelölve csak Unity Catalog esetén

Létrehoz egy eljárást a Unity Katalógusban, amely argumentumokat vesz fel vagy módosít, SQL-utasítások készletét hajtja végre, és opcionálisan eredményhalmazt ad vissza.

A pozícióparaméter meghívása mellett az eljárásokat nevesített paraméterhívással is meghívhatja.

Szemantika

CREATE [OR REPLACE] PROCEDURE [IF NOT EXISTS]
    procedure_name ( [ procedure_parameter [, ...] ] )
    [ characteristic [...] ]
    AS compound_statement

procedure_parameter
    [ IN | OUT | INOUT ] parameter_name data_type
    [ DEFAULT default_expression ] [ COMMENT parameter_comment ]

characteristic
  { LANGUAGE SQL |
    SQL SECURITY INVOKER |
    NOT DETERMINISTIC |
    COMMENT procedure_comment |
    DEFAULT COLLATION UTF8_BINARY |
    MODIFIES SQL DATA }

Paraméterek

  • CSERÉLJE LE

    Ha meg van adva, az azonos nevű eljárás helyébe lép. Egy meglévő függvény nem helyettesíthető eljárásokkal. Ezt a paramétert nem adhatja meg a következővel IF NOT EXISTS: .

  • HA NEM LÉTEZIK

    Ha meg van adva, csak akkor hozza létre az eljárást, ha az adott jegyzettel rendelkező eljárás még nem létezik. Ha létezik egy azonos nevű eljárás, a rendszer figyelmen kívül hagyja az utasítást. Ezt a paramétert nem adhatja meg a következővel OR REPLACE: .

  • procedure_name

    Az eljárás neve. Az eljárás nevét igény szerint sémanévvel is minősítheti. Ha a név nincs minősítve, az állandó eljárás az aktuális sémában jön létre.

    Az eljárás nevének egyedinek kell lennie a sémában található összes rutinhoz (eljáráshoz és függvényhez).

  • procedure_parameter

    Az eljárás paraméterét adja meg.

    • parameter_name

      A paraméter nevének egyedinek kell lennie az eljáráson belül.

    • IN, INOUT vagy OUT

      Opcionálisan a paraméter módját írja le.

      • BEN

        Csak bemeneti paramétert határoz meg. Ez az alapértelmezett érték.

      • INOUT

        Egy bemeneti-kimeneti argumentumot elfogadó paramétert határoz meg. Ha az eljárás kezeletlen hiba nélkül fejeződik be, kimenetként a végső paraméterértéket adja vissza.

      • KI

        Kimeneti paramétert határoz meg. A paraméter inicializálva NULL van, és ha az eljárás kezeletlen hiba nélkül fejeződik be, a végső paraméterértéket kimenetként adja vissza.

    • adat_típus

      Bármilyen támogatott adattípus.

    • ALAPÉRTELMEZETT default_expression

      Nem kötelező alapértelmezett érték, amelyet akkor kell használni, ha egy függvényhívás nem rendel argumentumot a paraméterhez. default_expression paraméternek rendelhetőnek kell lennie típussá data_type. A kifejezés nem hivatkozhat másik paraméterre, és nem tartalmazhat al lekérdezést.

      Ha egy paraméterhez alapértelmezett értéket ad meg, az alábbi paramétereknek is alapértelmezettnek kell lenniük.

      DEFAULT paraméterek esetében OUT nem támogatott.

    • Megjegyzés megjegyzés

      A paraméter opcionális leírása. comment egy literál kell, hogy legyen STRING.

  • összetett_kifejezés

    Sql-összetett utasítás (BEGIN ... END) az SQL-eljárás definíciójával.

    Az eljárás létrehozásakor a rendszer ellenőrzi a szintaktikai helyességet. Az eljárás törzsének szemantikai helyességét nem ellenőrzik, amíg meg nem hívják az eljárást.

  • jellemző

    A szükséges jellemző SQL SECURITY INVOKER és LANGUAGE SQL. A többi nem kötelező. Tetszőleges számú jellemzőt tetszőleges sorrendben megadhatja, de mindegyik záradékot csak egyszer adhatja meg.

    • LANGUAGE SQL

      A függvény implementálásának nyelve.

    • SQL SECURITY INVOKER

      Megadja, hogy az eljárás törzsében található SQL-utasítások az eljárást megadó felhasználó felügyelete alatt legyenek végrehajtva.

      Az eljárás törzsén belüli kapcsolatok és rutinok feloldásakor az Azure Databricks az aktuális katalógust és az aktuális sémát használja a meghíváskor.

    • NEM MEGHATÁROZOTT

      Az eljárás nemdeterminisztikusnak minősül, ami azt jelenti, hogy az egyes meghívások különböző eredményeket adhatnak vissza, még akkor is, ha ugyanazokkal az argumentumokkal hívják meg.

    • MEGJEGYZÉS procedure_comment

      Megjegyzés az eljáráshoz. procedure_comment kell, hogy STRING literál legyen. Az alapértelmezett érték a NULL.

    • ALAPÉRTELMEZETT RENDEZÉSI UTF8_BINARY

      A következőre vonatkozik:yes Databricks SQL check mark yes Databricks Runtime 17.1 és újabb

      Kényszeríti az eljárás alapértelmezett rendezést a következőre UTF8_BINARY: . Ez a záradék kötelező, ha az eljárás alapjául szolgáló séma nem alapértelmezett rendezéssel UTF8_BINARYrendelkezik. Az eljárás alapértelmezett karakterkészlete az eljárásparaméterek alapértelmezett karakterkészleteként, valamint az eljárás törzsében az összes sztringkonstans és helyi változó alapértelmezett karakterkészleteként szolgál.

    • SQL-ADATOK MÓDOSÍTÁSA

      A rendszer feltételezi, hogy egy eljárás módosítja az SQL-adatokat.

Példák

-- Demonstrate INOUT and OUT parameter usage.
> CREATE OR REPLACE PROCEDURE add(x INT, y INT, OUT sum INT, INOUT total INT)
    LANGUAGE SQL
    SQL SECURITY INVOKER
    COMMENT 'Add two numbers'
    AS BEGIN
        SET sum = x + y;
        SET total = total + sum;
    END;
> DECLARE sum INT;
> DECLARE total INT DEFAULT 0;
> CALL add(1, 2, sum, total);
> SELECT sum, total;
 3 3
> CALL add(3, 4, sum, total);
 7 10

-- The last executed query is the result set of a procedure
> CREATE PROCEDURE greeting(IN mode STRING COMMENT 'informal or formal')
    LANGUAGE SQL
    SQL SECURITY INVOKER
    AS BEGIN
        SELECT 'Hello!';
        CASE mode WHEN 'informal' THEN SELECT 'Hi!';
                  WHEN 'formal' THEN SELECT 'Pleased to meet you.';
        END CASE;
    END;
> CALL greeting('informal');
  Hi!

> CALL greeting('formal');
  Pleased to meet you.

> CALL greeting('casual');
  Hello!