602SQL-Úplná dokumentace Index  

Příkaz SELECT INTO (SQL)

Příkaz slouží k rychlému získání odpovědi na dotaz, která obsahuje právě jeden řádek, do proměnných.

Příkaz SELECT INTO (někde nazývaný Singleton Select) má stejnou syntaxi jako specifikace dotazu, avšak mezi klauzulemi SELECT a FROM obsahuje navíc klauzuli INTO ve tvaru:

klauzule_INTO ::= INTO proměnná {, proměnná }…

Počet proměnných musí být stejný jako počet výrazů v klauzuli SELECT a jejich typy musí být takové, aby se jim daly hodnoty výrazů z klauzule SELECT po řadě přiřadit. Proměnnou smí být také proměnná klienta uvedena dvojtečkou (resp. :>). Jako proměnná může být při použití v triggeru i výraz nová_řádka.sloupec (hodnota sloupce ve vkládaném nebo přepisovaném záznamu).

Pokud odpověď na dotaz obsahuje žádný nebo více než jeden záznam, nastane chybový sqlstate 21000 (SQ_CARDINALITY_VIOLATION). Existuje-li CONTINUE HANDLER pro tuto výjimku, je možné v něm do proměnných přiřadit nové hodnoty, aby procedura mohla pokračovat dalším příkazem.

Je-li v odpovědi právě jeden záznam, pak se hodnoty jeho sloupců přiřadí do proměnných uvedených v klauzuli INTO.


Příklad použití:

FUNCTION maxcislo () RETURNS INT;  
BEGIN  
 DECLARE maxval INT;  
 SELECT MAX(cis)+1 INTO maxval FROM Tab1;  
 RETURN (maxval);  
END