例:SQL を使用したサブタイプ コードと説明の検索

XML 列の検索」の中には、複数の XML エレメントから SQL Server の XPath 式を使用して値を抽出し、コード値ドメインからコードと値を検索する方法の例があります。同様のアプローチを使用して、フィーチャクラスからサブタイプの名前とコードを検索することができます。Oracle の例では、gdb_items_vw を検索してサブタイプ情報を抽出する方法を示します。

次の例では、SQL Server の dbo-schema ジオデータベース(Montgomery)を検索して、ユーザ Jake が所有する Parcels フィーチャクラスのサブタイプ名とコードを取得しています。

SELECT subtype.value('SubtypeName[1]', 'nvarchar(max)') AS "Description", 
subtype.value('SubtypeCode[1]', 'int') AS "Code"
 FROM dbo.GDB_ITEMS AS items INNER JOIN dbo.GDB_ITEMTYPES AS itemtypes
 ON items.Type = itemtypes.UUID
 CROSS APPLY 
  items.Definition.nodes('/DEFeatureClassInfo/Subtypes/Subtype') AS Subtypes(subtype)
 WHERE items.Name = 'Montgomery.Jake.Parcels'

この例では、Oracle の gdb_items_vw からサブタイプ コードとその説明を含む文字列の一部を検索し、ユーザ Vlad が所有する Fittings フィーチャクラスの値を見つけます。

SELECT	EXTRACTVALUE(fields.column_value, '/Subtype/SubtypeName') AS Description,
	EXTRACTVALUE(fields.column_value, '/Subtype/SubtypeCode') AS Code
FROM
	 sde.gdb_items_vw,
	TABLE(XMLSEQUENCE(XMLType(Definition).Extract('/DEFeatureClassInfo/Subtypes/Subtype'))) fields
WHERE Name = 'VLAD.Fittings';

メモメモ:

リテラル値を入力する場合には、大文字と小文字の区別をテーブルのコンテンツのものと一致させる必要があります。


3/6/2012