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

Làm cách nào để tạo và sử dụng danh sách nhiều lựa chọn trong APEX ORACLE?

Mục đưa đón . Ở phía bên trái, bạn sẽ hiển thị danh sách tất cả nhân viên. Các nút mục cho phép bạn di chuyển tất cả (hoặc chỉ một số trong số chúng) sang phía bên phải của mục. Sau khi bạn gửi trang, danh sách ID nhân viên được lưu trữ trong một cột bảng dưới dạng các giá trị được phân tách bằng dấu hai chấm, ví dụ:

6547:8879:5587:9987

Đây là một cách đơn giản để làm điều đó. Tuy nhiên, một khi bạn phải thực sự làm một cái gì đó với các giá trị đó, bạn phải chia chúng thành các hàng. Không phải là một vấn đề, mặc dù. Đây là một truy vấn:

SQL> with emps (shuttle_item) as
  2    (select '6547:8879:5587:9987' from dual)
  3  select regexp_substr(shuttle_item, '[^:]+', 1, level) one_item
  4  from emps
  5  connect by level <= regexp_count(shuttle_item, ':') + 1;

ONE_ITEM
---------------------------------------------------------------------
6547
8879
5587
9987

SQL>

Hoặc, bạn có thể tạo một biểu mẫu dạng bảng cũng hiển thị tất cả nhân viên và có các hộp kiểm ở đầu mỗi dòng. Sau đó, bạn sẽ tạo một quy trình - trong một vòng lặp - lưu trữ các giá trị đã chọn vào một bảng tạm thời bạn đã đề cập. Ví dụ:

-- F01 = row selector. If you check 1st and 3rd row, f01.count = 2 (2 rows checked)
--       f01(1) = 1 (row #1), f01(2) = 3 (row #3)
-- F02 = EMP_ID. f02(1) = EMP_ID that belongs to employee in 1st row, 
--       f02(3) = EMP_ID that belongs to emplyee in 3rd row
declare
  l_id number;
begin
  for j in 1 .. apex_application.g_f01.count
  loop
    l_id := apex_application.g_f02(apex_application.g_f01(j));

    insert into temp_table (emp_id) values (l_id);
  end loop;
end;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. LISTAGG trong Oracle để trả về các giá trị riêng biệt

  2. Truy vấn SQL của Oracle - lấy dữ liệu từ tuần trước (Thứ Hai-Thứ Bảy)

  3. Oracle - Cách buộc người dùng CHÈN nhiều hàng

  4. Có thể xem các đặc quyền bảng người dùng Oracle mà không có đặc quyền DBA không?

  5. Nhận tổng số hàng trong ORACLE và sau đó chỉ nhận được 4 kết quả