sql >> Databáze >  >> RDS >> Oracle

Deklarování proměnné a nastavení její hodnoty z dotazu SELECT v Oracle

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.



  1. Připojení zapalování k aplikaci Microsoft Access

  2. JSON_ARRAY_APPEND() – Připojit hodnoty k poli JSON v MySQL

  3. Jak deklarovat uživatelsky definovat výjimku pomocí PRAGMA EXCEPTION_INIT

  4. Jak REPLACE() funguje v MariaDB