sql >> Database teknologi >  >> RDS >> Oracle

Erklæring af en variabel og indstilling af dens værdi fra en SELECT-forespørgsel i Oracle

VÆLG INTO

DECLARE
   the_variable NUMBER;

BEGIN
   SELECT my_column INTO the_variable FROM my_table;
END;

Sørg for, at forespørgslen kun returnerer en enkelt række:

Som standard må en SELECT INTO-sætning kun returnere én række. Ellers hæver PL/SQL den foruddefinerede undtagelse TOO_MANY_ROWS, og værdierne af variablerne i INTO-sætningen er udefinerede. Sørg for, at din WHERE-sætning er specifik nok til kun at matche én række

Hvis ingen rækker returneres, hæver PL/SQL NO_DATA_FOUND. Du kan beskytte dig mod denne undtagelse ved at vælge resultatet af en aggregeret funktion, såsom COUNT(*) eller AVG(), hvor det er praktisk. Disse funktioner returnerer med garanti en enkelt værdi, selvom ingen rækker matcher betingelsen.

En SELECT ... BULK COLLECT INTO-sætning kan returnere flere rækker. Du skal opsætte indsamlingsvariabler for at holde resultaterne. Du kan erklære associative arrays eller indlejrede tabeller, der vokser efter behov for at holde hele resultatsættet.

Den implicitte markør SQL og dens attributter %NOTFOUND, %FOUND, %ROWCOUNT og %ISOPEN giver information om udførelsen af ​​en SELECT INTO-sætning.



  1. UNION resultaterne af flere lagrede procedurer

  2. Sqlplus login fejl ved brug af bash variabler:SP2-0306:Ugyldig indstilling

  3. Sikker TO_NUMBER()

  4. Sådan tilføjes en separator til en sammenkædet streng i SQL Server - CONCAT_WS()