Informix のバージョン非対応ジオデータベース データの SQL による編集

ジオデータベースのバージョン対応登録されていないテーブルのデータがジオデータベースの振舞いに関与しない場合、そのデータに対して SQL による更新、挿入、削除操作を実行できます。SQL を使用して編集できないデータ タイプとジオデータベースの振舞いについては、「SQL を使用して編集可能なデータの種類」をご参照ください。

ジオデータベースに登録されたデータはすべて、システムによって保守される NULL でない一意の ObjectID(Row ID)フィールドを持ちます。SQL を使用してジオデータベースのバージョン対応登録されていないテーブルにレコードを挿入するときは、ObjectID 用の一意な値を設定する必要があります。

ここでは 1 行ずつ更新する方法について説明します。通常は、ObjectID を取得してデータを更新するルーチンまたはクライアント プログラムを作成することになります。

手順:
  1. I-SQL のような SQL エディタからデータベースにログインします。

    データを編集する権限を持ったユーザとしてデータベースにログインしてください。

  2. table_registry テーブルをクエリして、行を挿入するテーブルの登録 ID と所有者を取得します。

    この例では、factories テーブルの登録 ID と所有者名が返されます。

    SELECT owner,registration_id,table_name
    FROM sde.table_registry
    WHERE table_name='factories';
    
    owner    registration_id    table_name
    editor1         7           factories
    
  3. next_row_id 関数を実行し、使用可能な次の行 ID の値を取得するために、ログインします。
  4. next_row_id 関数を実行します。この関数は sde ユーザが所有します。

    この例では、editor1 がテーブル所有者で、7 が factories テーブルの登録 ID です。

    EXECUTE FUNCTION "sde".next_row_id('editor1',7);
    
    ret_code 0
    err_msg
    rowid 18
    
    1 row(s) retrieved.
    

  5. SQL エディタに戻り、テーブルにレコードを挿入します。
    INSERT INTO factories
    VALUES (
    18,
    'makem'
    ST_PolyFromText('POLYGON((52 18,66 23,73 9,48 6,52 18),(59 18,67 18,67 13,59 13,59 18))',101)
    );
    

関連トピック

9/14/2013