sql >> Databasteknik >  >> RDS >> Oracle

Välj ett enstaka kolumnvärde och lagra det i variabel oracle sql

Om du vill använda rownum och order by du har för att lägga beställningen efter i en underfråga. Det finns inget annat sätt att garantera att du får rätt värde.

Det är också bra att ta itu med möjligheten att det kanske inte finns ett id som matchar din fråga. Jag har lagt till ytterligare en begin... end; blockera för att hantera detta.

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;
/

Som @raukh noterade (medan jag skrev detta!) är problemet print , som ska vara dbms_output.put_line()



  1. php multidimension array genererad från databasen

  2. Hur parallella planer startar – del 2

  3. Ge privilegier till alla användare, nuvarande och framtida

  4. Hur man säkerhetskopierar RAC VM:s