Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Wählen Sie einen einzelnen Spaltenwert aus und speichern Sie ihn in der Variable Oracle SQL

Wenn Sie rownum verwenden möchten und order by Sie haben um die Bestellung in eine Unterabfrage zu stellen. Es gibt keine andere Möglichkeit, sicherzustellen, dass Sie den richtigen Wert erhalten.

Es empfiehlt sich auch, mit der Möglichkeit umzugehen, dass es möglicherweise keine id gibt das passt zu deiner Anfrage. Ich habe ein zusätzliches begin... end; hinzugefügt blockieren, um damit umzugehen.

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

Wie @raukh feststellte (während ich dies schrieb!), ist das Problem print , was dbms_output.put_line() sein sollte