Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 12.0.1 » Mobile Link サーバー管理 » Mobile Link サーバーテクノロジ » Mobile Link 統合データベース » Oracle 統合データベース

 

Oracle VARRAY

iAnywhere Solutions 12 - Oracle ODBC ドライバー では、ストアドプロシージャーで Oracle VARRAY の使用がサポートされています。ストアドプロシージャー内に作成されたアップロードスクリプト (upload_insert、upload_update、upload_delete) で VARRAY を使用すると、ストアドプロシージャー内に作成されたアップロードスクリプトで VARRAY を使用しない場合と比べて、Mobile Link サーバーのパフォーマンスが向上することがあります。通常、ストアドプロシージャーを使用しない INSERT、UPDATE や DELETE などの単純な SQL 文が最高のパフォーマンスを発揮します。しかし、ストアドプロシージャーを使用すると (VARRAY を使用する方法を含む)、単純な文では不可能なビジネスロジックの適用が可能になります。

 ♦ VARRAY の例

次に、VARRAY を使用する簡単な例を示します。

  1. 3 つのカラムが含まれる my_table という名前のテーブルを作成します。

    create table my_table ( pk integer primary key, c1 number(20), c2 varchar2(4000) )
  2. VARRAY を使用するユーザー定義のコレクション型を作成します。

    create type my_integer is varray(100) of integer;
    create type my_number is varray(100) of number(20);
    create type my_varchar is varray(100) of varchar2(8000);

    my_varchar は、100 個の要素を含む VARRAY として定義されます。各要素のデータ型は varchar2 で、幅は 8000 です。この幅は、my_table に指定された幅の 2 倍の大きさにする必要があります。

  3. 挿入用のストアドプロシージャーを作成します。

    create or replace procedure my_insert_proc( pk_v my_integer, c1_v my_number, c2_v my_varchar )
    is
    c2_value my_varchar;
    begin
          c2_value := c2_v;  -- Work around an Oracle bug
          FORALL i in 1 .. pk_v.COUNT
                insert into my_table ( pk, c1, c2 ) values( pk_v(i), c1_v(i), c2_value(i) );
    end;
    
 VARRAY の制限