SQL (Structured Query Language) を使用して既存のデータベースとそのプロパティにアクセスすることができ、エンタープライズ ジオデータベースのバージョン対応登録されたデータセット (従来) とバージョン非対応データセットの両方を編集できます。
また、SQL を使用してテーブルを作成し、そのテーブルをジオデータベースに登録することもできます。これらのテーブルには、非空間属性および SQL 空間タイプまたはラスター タイプを含めることができます。
SQL を使用してジオデータベースにアクセスするときは、データベース管理システム レベルでジオデータベースにアクセスしています。つまり、SQL を使用しているときは、ArcGIS の振舞いや機能は実行されません。そのため、ジオデータベース内のデータに対して SQL コマンドを実行する場合は、データやデータに関する情報を参照することはかまいませんが、ジオデータベースの振舞いに関係するデータを変更してはいけません。詳細については、「SQL で編集可能なデータ タイプ」 をご参照ください。
データセットのプロパティへのアクセス
SQL の SELECT ステートメントを使用して、エンタープライズ ジオデータベース内の既存のデータセットのプロパティを取得することができます。
データセットのプロパティは、ジオデータベース システム テーブルに格納されています。この情報を得るには、システム テーブルの特定の列にクエリを実行します。場合によっては、列に XML ドキュメントが格納されていて、クエリ時に XPath 式を使用してプロパティ情報を取得することもあります。これは、IBM Db2、PostgreSQL、および Microsoft SQL Server データベースに格納されたジオデータベースの場合です。Oracle に格納されたジオデータベースでは、システム ビューにアクセスして、CLOB 列のプレーン テキストを読むことができます。
ジオデータベース データへのアクセス
SQL の SELECT ステートメントを使用して、ジオデータベース内の既存のデータセットからデータを取得することができます。エンタープライズ ジオデータベース内のバージョン対応登録されたデータセットをクエリする場合は、バージョン対応ビューを使用する必要があります。
バージョン対応ビューには、データベース ビュー、ストアド プロシージャ、トリガー、および SQL を使用してジオデータベース テーブルまたはフィーチャクラス内のバージョン対応登録されたデータを読んだり編集したりできる関数が組み込まれています。バージョン対応ビューでバージョン対応登録されたデータセットにアクセスすると、ビジネス テーブル内のすべてのレコードが選択され差分テーブルからのレコードとマージされて、指定したバージョンにおいてビジネス テーブルに行われたすべての変更を含むビューが返されます。
SQL を使用して空間データにアクセスして分析を行うには、その空間タイプとともにインストールされた空間 SQL 関数を使用します。各空間タイプは、独自の関数セットを持ちます。Esri は、Oracle および PostgreSQL において Esri の ST_Geometry タイプの関数を定義しています。また、各データベース ベンダーはそれぞれの SQL タイプの関数を定義しています。これらの関数は、空間リレーションシップを評価し、空間処理を実行し、空間プロパティの取得と設定を行うことができます。
ジオデータベース データの編集
データベース管理システムのネイティブ SQL を使用して、ジオデータベース内の単純な非空間属性データを編集できます。また、空間タイプとともにインストールされた空間 SQL 関数を使用して、単純な空間データを SQL によって変更することもできます。
SQL を使用して、エンタープライズ ジオデータベースのバージョン対応登録されたデータセットとバージョン非対応データセットの両方を編集できます。ただし、前述したように、ジオデータベースの機能に関係するデータセットを編集してはいけません。
バージョン非対応データを編集する場合、Esri が提供する関数や SQL を使用して ObjectID、GUID、および Global ID のフィールドに一意の値を挿入する必要があります。
バージョン対応登録されたデータを編集するには、バージョン対応ビューを使用する必要があります。バージョン対応ビューで使用されるトリガーは、バージョン対応ビューで編集するときに差分テーブルを更新します。これによって、編集中に差分テーブルにデータが挿入されることが保証されます。また、バージョン対応ビューでは、ObjectID フィールドに一意の値が自動的に挿入されます。
ArcGIS で使用するテーブルの作成
データベース管理システムのネイティブ SQL を使用して、テーブルを作成し値を設定できます。SQL を使用して作成した空間テーブルと非空間テーブルのどちらも ArcMap および ArcGIS Pro で使用できます。空間テーブルと非空間テーブルの両方の属性を ArcGIS で直接表示することもできます。クエリ レイヤーもテーブルへの直接アクセスも、別のシステムと連携しているテーブルがあり、そのテーブルに ArcGIS 経由でアクセスしたり、そのテーブルをジオデータベース内のテーブルに結合したりする場合に便利です。
テーブルでジオデータベースの機能を使用する場合は、テーブルをジオデータベースに登録します。ただし、テーブルでジオデータベースの機能を使用している場合、SQL を使用してテーブルを編集することはできません。
詳細については、「ワークフロー: SQL によるテーブルの作成およびジオデータベースへの登録」をご参照ください。