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

Nhận chỉ mục của phần tử trong bộ sưu tập PL / SQL

Không chắc chắn, nếu điều này thực sự hữu ích hoặc nếu bạn nghĩ rằng nó thanh lịch hơn:

create type t_test as table of varchar2(1);
/

DECLARE
--TYPE t_test IS TABLE OF VARCHAR2(1);
  v_test t_test;

  function get_index(q in t_test, c in varchar2) return number is
    ind number;
  begin
    select min(rn) into ind from (
      select column_value cv, rownum rn
       from table(q) 
    )
    where cv = c;

    return ind;
  end get_index;

BEGIN
  v_test := NEW t_test('A', 'B', 'A');

  dbms_output.put_line( 'A: ' || get_index( v_test, 'A' ) );
  dbms_output.put_line( 'B: ' || get_index( v_test, 'B' ) );
  dbms_output.put_line( 'C: ' || get_index( v_test, 'C' ) );
END;
/

show errors

drop type t_test;


  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 thế nào để tránh truy vấn rất nặng này làm chậm ứng dụng?

  2. Lưu trữ hình ảnh đã tải lên:Nó nên được lưu trữ trên máy chủ hay trong cơ sở dữ liệu?

  3. Các thay đổi kế hoạch thực thi Oracle SQL do chuyển đổi nội bộ SYS_OP_C2C

  4. Oracle SQL:Làm thế nào để hiển thị các tuần trống / tuần không có dữ liệu?

  5. Cập nhật bản vá quan trọng của Oracle - tháng 10 năm 2020