sql >> Database >  >> RDS >> Oracle

Een variabele declareren en de waarde ervan instellen vanuit een SELECT-query in Oracle

SELECTEER IN

DECLARE
   the_variable NUMBER;

BEGIN
   SELECT my_column INTO the_variable FROM my_table;
END;

Zorg ervoor dat de zoekopdracht slechts één rij retourneert:

Standaard moet een SELECT INTO-instructie slechts één rij retourneren. Anders verhoogt PL/SQL de vooraf gedefinieerde uitzondering TOO_MANY_ROWS en zijn de waarden van de variabelen in de INTO-clausule niet gedefinieerd. Zorg ervoor dat uw WHERE-component specifiek genoeg is om slechts met één rij overeen te komen

Als er geen rijen worden geretourneerd, verhoogt PL/SQL NO_DATA_FOUND. U kunt zich tegen deze uitzondering beschermen door waar mogelijk het resultaat van een aggregatiefunctie te selecteren, zoals COUNT(*) of AVG(). Deze functies geven gegarandeerd een enkele waarde terug, zelfs als er geen rijen overeenkomen met de voorwaarde.

Een SELECT ... BULK COLLECT INTO-instructie kan meerdere rijen retourneren. U moet verzamelingsvariabelen instellen om de resultaten vast te houden. U kunt associatieve arrays of geneste tabellen declareren die zo nodig groeien om de volledige resultatenset te bevatten.

De impliciete cursor SQL en zijn attributen %NOTFOUND, %FOUND, %ROWCOUNT en %ISOPEN geven informatie over de uitvoering van een SELECT INTO-instructie.



  1. Wat is een berekende kolom in SQL Server?

  2. Maak een tabel van twee typen in PostgreSQL

  3. GRADEN() Voorbeelden in SQL Server

  4. Hoe verander ik een PostgreSQL-tabel en maak ik een kolom uniek?