例: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