Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Chọn một giá trị cột duy nhất và lưu trữ nó trong biến oracle sql

Nếu bạn muốn sử dụng rownumorder by bạn để đặt thứ tự trong một truy vấn phụ. Không có cách nào khác để đảm bảo rằng bạn nhận được giá trị chính xác.

Đó cũng là một phương pháp hay để đối phó với khả năng có thể không có id phù hợp với truy vấn của bạn. Tôi đã thêm một begin... end; bổ sung để giải quyết vấn đề này.

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

Như @raukh đã lưu ý (trong khi tôi đang viết bài này!), Sự cố là print , phải là 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. Làm cách nào để bạn đặt Incemental thành true cho nhiều bảng có cùng một chủ sở hữu bằng cách sử dụng DBMS_STATS.set_table_prefs?

  2. OLEDB đọc nhanh nhất từ ​​ORACLE

  3. Lập bản đồ loại của oracle với chế độ ngủ đông

  4. Làm thế nào để có được ngày hôm qua trong Oracle

  5. Định dạng cột ngày trong javaFX TableView cho dữ liệu được truy xuất từ ​​Oracle DB