Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí pro:
Databricks Runtime 18.1 a novější
Zavře otevřený kurzor a uvolní jeho prostředky.
Příkaz CLOSE zavře kurzor, který byl dříve otevřen s OPENuvolněním paměti a prostředků přidružených k jeho sadě výsledků. Po zavření je možné kurzor znovu otevřít OPEN , aby se dotaz spustil znovu s čerstvými vazbami parametrů.
Tento příkaz lze použít pouze ve složeném příkazu .
Syntaxe
CLOSE cursor_name
Parametry
-
Název otevřeného kurzoru. Kurzor může být volitelně kvalifikovaný pomocí popisku složeného příkazu (například
outer_label.my_cursor).
Poznámky
Zavření kurzoru, který není otevřený , vyvolá CURSOR_NOT_OPEN.
Kurzory se automaticky zavírají v následujících scénářích:
- Když se složený příkaz ukončí kvůli neošetřené výjimce (viz Chybové podmínky).
-
EXITPři aktivaci obslužné rutiny (všechny kurzory ve složeného příkazu a vnořené sloučeniny jsou zavřené). - Když složený příkaz, který deklaruje, je obvykle ukončí.
Zavření kurzoru nemá vliv na deklaraci kurzoru. Název kurzoru zůstává v oboru a lze ho znovu otevřít.
Příklady
-- Basic cursor lifecycle
> BEGIN
DECLARE x INT;
DECLARE my_cursor CURSOR FOR SELECT id FROM range(3);
OPEN my_cursor;
FETCH my_cursor INTO x;
VALUES (x);
CLOSE my_cursor;
END;
0
-- Close cursor in handler
> BEGIN
DECLARE x INT;
DECLARE my_cursor CURSOR FOR SELECT id FROM range(2);
DECLARE EXIT HANDLER FOR NOT FOUND
BEGIN
CLOSE my_cursor;
VALUES ('Cursor closed on completion');
END;
OPEN my_cursor;
REPEAT
FETCH my_cursor INTO x;
UNTIL false END REPEAT;
END;
Cursor closed on completion
-- Reopen cursor with different parameters
> BEGIN
DECLARE result STRING DEFAULT '';
DECLARE x INT;
DECLARE param_cursor CURSOR FOR SELECT id FROM range(10) WHERE id = ?;
OPEN param_cursor USING 3;
FETCH param_cursor INTO x;
SET result = 'First open: ' || CAST(x AS STRING);
CLOSE param_cursor;
OPEN param_cursor USING 7;
FETCH param_cursor INTO x;
SET result = result || '; Second open: ' || CAST(x AS STRING);
CLOSE param_cursor;
VALUES (result);
END;
First open: 3; Second open: 7
Související články
- skriptování SQL
- Složený příkaz (DECLARE CURSOR)
- Příkaz OPEN
- Příkaz FETCH
- složený příkaz