例:バージョン対応登録されているジオデータベース内のデータセットの特定方法

GDB_Items テーブル(Oracle の場合は GDB_Items_vw ビュー)の DEFINITION 列を検索して、バージョン対応登録の有無の値が true(データベースによっては 1)に設定されているフィーチャクラスのリストを取得することができます。

ArcSDE ジオデータベースでの SQL の使用方法の概要」で解説されているとおり、SQL を使用してバージョン対応登録されたデータを編集するには、マルチバージョン対応ビューを作成する必要があります。そのため、ジオデータベース内のどのフィーチャクラスがバージョン対応登録されているかを判別できると、SQL でフィーチャクラスの編集を始める前に、マルチバージョン対応ビューの作成が必要であるかどうか確認することができます。

次に示した検索の例を実行すると、ステートメントを実行したデータベース内にある、すべてのバージョン対応登録されたフィーチャクラスのリストが返されます。

メモメモ:

これらの検索で返されるフィーチャクラスの中には、たとえマルチバージョン対応ビューを使用したとしても、SQL を使用して編集することができないものもあります。詳細については、「SQL を使用して編集可能なデータの種類」をご参照ください。

この検索を実行する前に、正しいデータベースに接続していることを確認してください。

--Queries PostgreSQL
--Returns a list of versioned datasets in the specified geodatabase

SELECT name AS "Versioned feature class", 
FROM sde.gdb_items
WHERE (xpath('//Versioned/text()', definition))[1]::text = 'true';
--Queries a dbo-schema geodatabase in SQL Server
--Returns a list of versioned datasets in the specified geodatabase

SELECT NAME AS "Versioned feature class" 
FROM dbo.GDB_ITEMS
WHERE Definition.exist('(/*/Versioned)[1]') = 1
AND Definition.value('(/*/Versioned)[1]', 'nvarchar(4)') = 'true'
--Queries Oracle
--Returns a list of versioned datasets in the specified geodatabase

SELECT items.name AS Dataset,
	      itemtypes.name AS Dataset_Type
FROM sde.gdb_items_vw items,
	    sde.gdb_itemtypes itemtypes
WHERE	items.definition LIKE '%Versioned>true%'
	AND items.type = itemtypes.uuid;

3/6/2012