VYBERTE DO
DECLARE
the_variable NUMBER;
BEGIN
SELECT my_column INTO the_variable FROM my_table;
END;
Ujistěte se, že dotaz vrací pouze jeden řádek:
Ve výchozím nastavení musí příkaz SELECT INTO vrátit pouze jeden řádek. Jinak PL/SQL vyvolá předdefinovanou výjimku TOO_MANY_ROWS a hodnoty proměnných v klauzuli INTO jsou nedefinované. Ujistěte se, že vaše klauzule WHERE je dostatečně konkrétní, aby odpovídala pouze jednomu řádku
Pokud nejsou vráceny žádné řádky, PL/SQL vyvolá NO_DATA_FOUND. Proti této výjimce se můžete chránit výběrem výsledku agregační funkce, jako je COUNT(*) nebo AVG(), kde je to praktické. Tyto funkce zaručují, že vrátí jednu hodnotu, i když podmínce neodpovídají žádné řádky.
Příkaz SELECT... BULK COLLECT INTO může vrátit více řádků. Chcete-li uchovávat výsledky, musíte nastavit proměnné kolekce. Můžete deklarovat asociativní pole nebo vnořené tabulky, které rostou podle potřeby, aby udržely celou sadu výsledků.
Implicitní kurzor SQL a jeho atributy %NOTFOUND, %FOUND, %ROWCOUNT a %ISOPEN poskytují informace o provedení příkazu SELECT INTO.