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

Oracle PL / SQL-単純な配列変数を作成する方法は?

    固定サイズの配列にはVARRAYを使用できます:

    declare
       type array_t is varray(3) of varchar2(10);
       array array_t := array_t('Matt', 'Joanne', 'Robert');
    begin
       for i in 1..array.count loop
           dbms_output.put_line(array(i));
       end loop;
    end;
    

    または、無制限の配列の場合はTABLE:

    ...
       type array_t is table of varchar2(10);
    ...
    

    ここでの「テーブル」という言葉は、紛らわしいことに、データベーステーブルとは何の関係もありません。どちらの方法でも、メモリ内配列が作成されます。

    これらのいずれかを使用する場合は、要素を追加する前に、コレクションの初期化と拡張の両方を行う必要があります。

    declare
       type array_t is varray(3) of varchar2(10);
       array array_t := array_t(); -- Initialise it
    begin
       for i in 1..3 loop
          array.extend(); -- Extend it
          array(i) := 'x';
       end loop;
    end;
    

    最初のインデックスは0ではなく1です。



    1. PostgreSQL10でのICUサポートとのより堅牢な照合

    2. データベースヘルパーにシングルトンを使用している場合、SQLiteデータベースを復元した後に更新/再開するにはどうすればよいですか?

    3. SQL Server(T-SQL)でデータベースのANSI_NULLS設定を見つける方法

    4. SQL Serverの2つの日付間の時間差(10進数)を計算するにはどうすればよいですか?