sql >> Databasteknik >  >> RDS >> Oracle

Deklarera en variabel och ställa in dess värde från en SELECT-fråga i Oracle

VÄLJ IN

DECLARE
   the_variable NUMBER;

BEGIN
   SELECT my_column INTO the_variable FROM my_table;
END;

Se till att frågan endast returnerar en enda rad:

Som standard måste en SELECT INTO-sats endast returnera en rad. Annars höjer PL/SQL det fördefinierade undantaget TOO_MANY_ROWS och värdena för variablerna i INTO-satsen är odefinierade. Se till att din WHERE-sats är tillräckligt specifik för att bara matcha en rad

Om inga rader returneras, höjer PL/SQL NO_DATA_FOUND. Du kan skydda dig mot detta undantag genom att välja resultatet av en aggregerad funktion, som COUNT(*) eller AVG(), där det är praktiskt. Dessa funktioner returnerar garanterat ett enda värde, även om inga rader matchar villkoret.

En SELECT ... BULK COLLECT INTO-sats kan returnera flera rader. Du måste ställa in samlingsvariabler för att hålla resultaten. Du kan deklarera associativa arrayer eller kapslade tabeller som växer efter behov för att hålla hela resultatuppsättningen.

Den implicita markören SQL och dess attribut %NOTFOUND, %FOUND, %ROWCOUNT och %ISOPEN ger information om exekvering av en SELECT INTO-sats.



  1. En känslolös logisk titt på SQL Servers namnkonventioner

  2. Hur man använder google translate URL i Oracle plsql

  3. Hur redigerar jag en tabell för att aktivera CASCADE DELETE?

  4. Enterprise Manager 11g FMW Control i R12.2