Oracle
 sql >> база данни >  >> RDS >> Oracle

Създаване или симулиране на двумерни масиви в PL/SQL

Ето пример за използване на многоизмерен масив в pl/sql. Тук използвам масив, съдържащ масив.

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;

Резултатът ще бъде:

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

Надявам се това да помогне



  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 Cloud

  2. Пример за публикуване на Oracle UTL_HTTP с множество части/формуляр (JSON &ZIP).

  3. Първи стъпки с Oracle Application Express-APEX

  4. Не може да се потвърди, с опция за новалидиране

  5. Работата ми със 11g Optimizer Stats се отказа от мен – коригирано