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

Tạo hoặc mô phỏng mảng hai chiều trong PL / SQL

Đây là một ví dụ về việc sử dụng một mảng nhiều chiều trong pl / sql. Ở đây tôi sử dụng một mảng chứa một mảng.

declare

  type t_features is table of varchar(100) index by pls_integer;
  type t_car_rec is record
  (
    make varchar2(50),
    model varchar2(50),
    features t_features
  );

  type t_car_tab is table of t_car_rec index by pls_integer;
  car_tab t_car_tab;

  procedure show_detail is
    car_idx pls_integer;
    features_idx pls_integer;
  begin
    car_idx := car_tab.first;
    loop
      exit when car_idx is null;
      dbms_output.put_line('Details for ' || car_tab(car_idx).make || ' ' || car_tab(car_idx).model);

      features_idx := car_tab(car_idx).features.first;
      loop
        exit when features_idx is null;
        dbms_output.put_line('   =>' || car_tab(car_idx).features(features_idx));

        features_idx := car_tab(car_idx).features.next(features_idx);
      end loop;

      car_idx := car_tab.next(car_idx);
    end loop;
  end;

begin

  -- using sequential index values
  car_tab(1).make := 'Ferrari';
  car_tab(1).model := 'Testarossa';
  car_tab(1).features(1) := 'Fast';
  car_tab(1).features(2) := 'Looks cool';
  car_tab(1).features(3) := 'Expensive';

  -- using random index values (sparse)
  car_tab(2).make := 'Acura';
  car_tab(2).model := 'TSX';
  car_tab(2).features(14) := 'Small';
  car_tab(2).features(200) := 'Good MPG';
  car_tab(2).features(36) := 'Inexpensive';

  show_detail;

end;

Đầu ra sẽ là:

Details for Ferrari Testarossa
  =>Fast
  =>Looks cool
  =>Expensive 
Details for Acura TSX
  =>Small
  =>Inexpensive
  =>Good MPG

Hy vọng điều đó sẽ giúp



  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 12.2.0.1 sắp ra mắt vào năm 2016

  2. Sử dụng setDate trong PreparedStatement

  3. Truy vấn một số NEXTVAL từ trình tự trong một câu lệnh

  4. Oracle PL / SQL - Bộ sưu tập (Bảng lồng nhau)

  5. Hàm LAST_DAY () trong Oracle