Oracle
 sql >> база данни >  >> RDS >> Oracle

Изберете стойност на една колона и я запазете в променлива oracle sql

Ако искате да използвате rownum и order by вие имате за да поставите реда по в подзаявка. Няма друг начин да се гарантира, че получавате правилната стойност.

Също така е добра практика да се справите с възможността да няма id който отговаря на вашата заявка. Добавих допълнителен begin... end; блокирайте, за да се справите с това.

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

Както @raukh отбеляза (докато писах това!) проблемът е print , което трябва да бъде dbms_output.put_line()



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Почистване на колона за дата на Oracle

  2. Бизнес логика:база данни или приложен слой

  3. Linux и Oracle Instant Client

  4. GROUP BY без агрегатна функция

  5. преминаване през масив за условието where pl/sql