sql >> データベース >  >> RDS >> Oracle

PL/SQLでの2次元配列の作成またはシミュレーション

    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. データベースの削除中にエラーが発生しました(rmdir'.test \'ができません、errno:17)

    2. OracleIN句でのLIKEの使用

    3. mysql構成はサーバーの起動時に停止します

    4. ODP.NETを使用した名前によるクエリパラメータのバインド