ArcGIS Desktop

  • ArcGIS Pro
  • ArcMap

  • My Profile
  • ヘルプ
  • Sign Out
ArcGIS Desktop

ArcGIS Online

組織のマッピング プラットフォーム

ArcGIS Desktop

完全なプロ仕様の GIS

ArcGIS Enterprise

エンタープライズ GIS

ArcGIS for Developers

位置情報利用アプリの開発ツール

ArcGIS Solutions

各種業界向けの無料のテンプレート マップおよびテンプレート アプリケーション

ArcGIS Marketplace

組織で使えるアプリとデータを取得

  • ドキュメント
  • サポート
Esri
  • サイン イン
user
  • マイ プロフィール
  • サイン アウト

ArcMap

  • ホーム
  • はじめに
  • マップ
  • 解析
  • データ管理
  • ツール
  • エクステンション

ワークフロー: SQL を使用したテーブルの作成とジオデータベースへのテーブルの登録

Standard または Advancedのライセンスで利用可能。

  • SQL を使用した非空間テーブルの作成
  • SQL を使用した非空間テーブルへのデータの追加
  • SQL を使用した空間テーブルの作成
  • SQL を使用した空間テーブルへのデータの追加
  • ジオデータベースへのテーブルの登録
複雑度:
中級
データ要件:
独自データの使用
目的:
SQL で空間テーブルと非空間テーブルの両方を作成してから、ジオデータベースに登録します。

テーブルの作成には SQL を使用できます。テーブルが空間列を含んでいる場合、テーブルは空間テーブルとみなされます。空間テーブルであってもなくても、SQL でデータを投入できます。テーブルが存在すると、それをジオデータベースに登録し、ジオデータベース機能に加えることができます。

この操作は、カスタム アプリケーションで空間テーブルや非空間テーブルを作成する、または別の機関や契約者からデータベース テーブルを受け取り、そのテーブルに対してジオデータベースと ArcGIS の機能の利用したい場合に行うとよいでしょう。

同様に、SQL を使用して、空間テーブルおよび非空間テーブルに対してビューを定義できます。ビュー定義に、ObjectID として使用できる一意の値が格納された整数列が含まれている場合、そのビューをジオデータベースに登録できます。ビューを登録すると、ビューのコンテンツに関する情報 (範囲、ジオメトリ タイプなど) を格納することができ、ビューに対してメタデータを定義できます。

このワークフローでは、SQL クライアントを使用した非空間テーブルおよび空間テーブルの両方の作成、テーブルへのデータの追加、およびジオデータベースへのテーブルの登録について説明します。

SQL を使用した非空間テーブルの作成

  1. SQL クライアントを開き、データベースにテーブルを作成する権限のあるユーザーとしてデータベースにログインします。
  2. CREATE TABLE SQL ステートメントで、PID、f_name、l_name、dwel_id という列を持つ非空間テーブル patients を作成します。

    Oracle

    CREATE TABLE patients 
    (PID integer NOT NULL, f_name nvarchar2(25), l_name nvarchar2(38), dwel_id integer);
    

    PostgreSQL

    CREATE TABLE patients 
    (PID integer NOT NULL UNIQUE, f_name varchar(25), l_name varchar(38), dwel_id integer);
    

    Db2

    CREATE TABLE patients 
    (PID integer NOT NULL, f_name varchar(25), l_name varchar(38), dwel_id integer);
    

    Informix

    CREATE TABLE patients 
    (PID integer NOT NULL, f_name varchar(25), l_name varchar(38), dwel_id integer);
    

SQL を使用した非空間テーブルへのデータの追加

SQL で patients テーブルにレコードを追加する場合は、SQL の INSERT ステートメントを使用します。

  1. patients テーブルに 4 つのレコードを挿入します。

    Oracle

    INSERT INTO PATIENTS (PID, f_name, l_name, dwel_id)
    VALUES (1, 'wolfgang', 'bruker', 4301);
    INSERT INTO PATIENTS (PID, f_name, l_name, dwel_id)
    VALUES (2, 'ida', 'pastens', 4301);
    INSERT INTO PATIENTS (PID, f_name, l_name, dwel_id)
    VALUES (3, 'ricardo', 'montoya', 1001);
    INSERT INTO PATIENTS (PID, f_name, l_name, dwel_id)
    VALUES (4, 'tukufu', 'endel', 9601);
    

    PostgreSQL

    INSERT INTO patients (PID, f_name, l_name, dwel_id) VALUES (1, 'wolfgang', 'bruker', 4301);
    INSERT INTO patients (PID, f_name, l_name, dwel_id) VALUES (2, 'ida', 'pastens', 4301);
    INSERT INTO patients (PID, f_name, l_name, dwel_id) VALUES (3, 'ricardo', 'montoya', 1001);
    INSERT INTO patients (PID, f_name, l_name, dwel_id)
    VALUES (4, 'tukufu', 'endel', 9601);
    

    Db2

    INSERT INTO PATIENTS (PID, f_name, l_name, dwel_id) VALUES (1, 'wolfgang', 'bruker', 4301);
    INSERT INTO PATIENTS (PID, f_name, l_name, dwel_id) VALUES (2, 'ida', 'pastens', 4301);
    INSERT INTO PATIENTS (PID, f_name, l_name, dwel_id) VALUES (3, 'ricardo', 'montoya', 1001);
    INSERT INTO PATIENTS (PID, f_name, l_name, dwel_id)
    VALUES (4, 'tukufu', 'endel', 9601);
    

    Informix

    INSERT INTO patients (PID, f_name, l_name, dwel_id) VALUES (1, 'wolfgang', 'bruker', 4301);
    INSERT INTO patients (PID, f_name, l_name, dwel_id) VALUES (2, 'ida', 'pastens', 4301);
    INSERT INTO patients (PID, f_name, l_name, dwel_id) VALUES (3, 'ricardo', 'montoya', 1001);
    INSERT INTO patients (PID, f_name, l_name, dwel_id)
    VALUES (4, 'tukufu', 'endel', 9601);
    

SQL を使用した空間テーブルの作成

空間列を持つテーブルの作成には、CREATE TABLE ステートメントを使用することができます。

  1. 整数の OID、整数の dwel_id、文字列の address、整数の city_code、ST_Geometry の loc 列が含まれた outbreaks テーブルを作成します。

    Oracle

    CREATE TABLE outbreaks 
    (OID integer NOT NULL, address nvarchar2(120), city_code integer, loc sde.st_geometry);
    

    PostgreSQL

    CREATE TABLE outbreaks 
    (OID integer NOT NULL UNIQUE, address varchar(120), city_code integer, loc sde.st_geometry);
    

    Db2

    CREATE TABLE outbreaks 
    (OID integer NOT NULL, address nvarchar2(120), city_code integer, loc st_geometry);
    

    Informix

    CREATE TABLE outbreaks 
    (OID integer NOT NULL UNIQUE, address varchar(120), city_code integer, loc st_geometry);
    

SQL を使用した空間テーブルへのデータの追加

outbreaks テーブルに 3 つのレコードを挿入します。

注意:

以下のサンプル ステートメントで使用されている 0 は SRID です。実際には別の数値を指定することになります。

  1. INSERT SQL ステートメントと ST_Point 関数を使って、outbreaks テーブルにレコードを追加します。

    Oracle

    INSERT INTO OUTBREAKS (OID, address, city_code, loc)
    VALUES (1, 
    '1420 kirchestrasse', 
    43, 
    sde.st_geometry (0.00003, 0.00051, null, null, 4326)
    );
    INSERT INTO OUTBREAKS (OID, address, city_code, loc)
    VALUES (2, 
    '638 villa arbol', 
    10, 
    sde.st_geometry (0.00020, -0.00029, null, null, 4326)
    );
    INSERT INTO OUTBREAKS (OID, address, city_code, loc)
    VALUES (3, 
    '5579 riverview dr', 
    96, 
    sde.st_geometry (-0.00048, -0.00009, null, null, 4326)
    );
    

    PostgreSQL

    INSERT INTO outbreaks (OID, address, city_code, loc) VALUES (1, 
    '1420 kirchestrasse', 43, 
    sde.st_point (0.00003, 0.00051, null, null, 4326) );
    INSERT INTO outbreaks (OID, address, city_code, loc) VALUES (2, 
    '638 villa arbol', 10, 
    sde.st_point (0.00020, -0.00029, null, null, 4326) );
    INSERT INTO outbreaks (OID, address, city_code, loc) VALUES (3, 
    '5579 riverview dr', 96, 
    sde.st_point (-0.00048, -0.00009, null, null, 4326)
    );
    

    Db2

    INSERT INTO OUTBREAKS (OID, address, city_code, loc) VALUES (1, 
    '1420 kirchestrasse', 43, 
    st_point (0.00003, 0.00051, null, null, 0) );
    INSERT INTO OUTBREAKS (OID, address, city_code, loc) VALUES (2, 
    '638 villa arbol', 10, 
    st_point (0.00020, -0.00029, null, null, 0) );
    INSERT INTO OUTBREAKS (OID, address, city_code, loc) VALUES (3, 
    '5579 riverview dr', 96, 
    st_point (-0.00048, -0.00009, null, null, 0)
    );
    

    Informix

    INSERT INTO outbreaks (OID, address, city_code, loc) VALUES (1, 
    '1420 kirchestrasse', 43, 
    st_point (0.00003, 0.00051, null, null, 0) );
    INSERT INTO outbreaks (OID, address, city_code, loc) VALUES (2, 
    '638 villa arbol', 10, 
    st_point (0.00020, -0.00029, null, null, 0) );
    INSERT INTO outbreaks (OID, address, city_code, loc) VALUES (3, 
    '5579 riverview dr', 96, 
    st_point (-0.00048, -0.00009, null, null, 0)
    );
    

ジオデータベースへのテーブルの登録

ArcGIS Desktop で、テーブルをジオデータベースに登録することができます。

以下の一連の手順は、ArcGIS Desktop でジオデータベースに登録する方法の説明です。

  1. [ジオデータベースに登録 (Register with Geodatabase)] ツールを開きます。

    このツールを検索するか、[データ管理] ツールボックスの [ジオデータベース管理] ツールセット内でツールを開くか、ArcMap の [カタログ] ツリー内のデータベース接続の下で、テーブルまたはビューを右クリックし、[ジオデータベースに登録] をクリックすることができます。

  2. ArcGIS Desktop クライアントを起動し、登録するテーブルまたはビューを含んでいるエンタープライズ ジオデータベースに接続します。

    所有者のみがジオデータベースに登録できるため、テーブルまたはビューの所有者として接続します。

  3. patients テーブルを右クリックし、[ジオデータベースに登録] をクリックします。
  4. PID フィールドは、NULL でない整数列として定義されているので、登録されたテーブルの ObjectID として使用されます。
  5. outbreaks テーブルを右クリックし、[ジオデータベースに登録] をクリックします。
  6. 挿入したフィールドに対して空間参照が定義され、挿入されたエンティティ タイプは 1 つだけ (ポイント) なので、ArcGIS はこれを登録時に検出し、その情報を使用してフィーチャクラスを定義します。OID フィールドは、NULL でない整数列として定義されているので、登録されたフィーチャクラスの ObjectID として使用されます。

ArcGIS Desktop

  • ホーム
  • ドキュメント
  • サポート

ArcGIS プラットフォーム

  • ArcGIS Online
  • ArcGIS Desktop
  • ArcGIS Enterprise
  • ArcGIS for Developers
  • ArcGIS Solutions
  • ArcGIS Marketplace

Esri について

  • 会社概要
  • 採用情報
  • Esri ブログ
  • ユーザ カンファレンス
  • デベロッパ サミット
Esri
ご意見・ご感想をお寄せください。
Copyright © 2019 Esri. | プライバシー | リーガル