Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Wybierz wartość w pojedynczej kolumnie i zapisz ją w zmiennej oracle sql

Jeśli chcesz użyć rownum i order by masz złożyć zamówienie w podzapytaniu. Nie ma innego sposobu, aby zagwarantować, że uzyskasz prawidłową wartość.

Dobrą praktyką jest również radzenie sobie z możliwością braku id pasujące do Twojego zapytania. Dodałem dodatkowy begin... end; zablokować, aby sobie z tym poradzić.

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

Jak zauważył @raukh (podczas gdy to pisałem!) problemem jest print , którym powinno być 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 PL/SQL - Jak uniknąć dwukropka (:), błędnie interpretowanego dla zmiennej wiążącej?

  2. Jak wyłączyć pamięć podręczną Oracle dla testów wydajności?

  3. Wyzwalacze Oracle - problem z mutacją tabel

  4. _gc_fusion_compression

  5. Magazynowanie danych Profilowanie danych ETL za pomocą Oracle Warehouse Builder