sql >> Database >  >> RDS >> Oracle

Selecteer een enkele kolomwaarde en sla deze op in de variabele Oracle sql

Als u rownum . wilt gebruiken en order by jij hebt om de bestelling in een subquery te plaatsen. Er is geen andere manier om te garanderen dat u de juiste waarde krijgt.

Het is ook een goede gewoonte om om te gaan met de mogelijkheid dat er geen id . is die overeenkomt met uw vraag. Ik heb een extra begin... end; . toegevoegd blok om hiermee om te gaan.

declare
   v_id a.id%type;
begin

   begin
      select id into v_id 
        from ( select id
                 from a 
                 where name = 'test' 
                 order by id desc )
       where rownum < 2 
             ;
    exception when no_data_found then
      v_id := null;
    end;

   dbms_output.put_line(v_id);
   doSomething(v_id);

end;
/

Zoals @raukh opmerkte (terwijl ik dit aan het schrijven was!) is het probleem print , wat dbms_output.put_line() . zou moeten zijn



  1. juiste manier om gegevens in te voegen met id als auto-increment in mysqli

  2. Er is een thread opgehangen op java.net.SocketInputStream.socketRead0(Native Method), weet iemand wat er is gebeurd?

  3. Aan de slag met Oracle Application Express-APEX

  4. Zeer eenvoudige AVG()-aggregatiequery op MySQL-server duurt belachelijk lang