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

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

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

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

手順:
  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)
    );

関連項目


7/10/2012