属性ドメイン値がアルファベット順や特定の順序になっていなくて非常にイライラしたことはありませんか?作成時に正しい順序でドメイン値を作成しなかったあなたの責任だと言う人もいるかもしれませんが……。<\/P>
<\/P>
ユーザーに表示されるドメイン値を任意の方法で更新する方法は確かにあります!<\/P>
例えば、「District」という名前のドメインがあるとします。XMLでどのように見えるか確認するには:<\/P>
Select DEFINITION FROM [dbo].[GDB_ITEMS]WHERE NAME = 'District'<\/PRE><\/P>結果のdefinitionフィールドの値をクリックしてください。<\/P><\/P><\/P><GPCodedValueDomain2 xmlns:xsi="<\/SPAN>http:\/\/www.w3.org\/2001\/XMLSchema-instance<\/A>" xmlns:xs="<\/SPAN>http:\/\/www.w3.org\/2001\/XMLSchema<\/A>" xmlns:typens="<\/SPAN>http:\/\/www.esri.com\/schemas\/ArcGIS\/10.0<\/A>" xsi:type="typens:GPCodedValueDomain2"><\/SPAN> <DomainName>District<\/DomainName> <FieldType>esriFieldTypeString<\/FieldType> <MergePolicy>esriMPTDefaultValue<\/MergePolicy> <SplitPolicy>esriSPTDefaultValue<\/SplitPolicy> <Description>Desc<\/Description> <Owner>DBO<\/Owner> <CodedValues xsi:type="typens:ArrayOfCodedValue"> <CodedValue xsi:type="typens:CodedValue"> <Name>North District<\/Name> <Code xsi:type="xs:string">ND<\/Code> <\/CodedValue> <CodedValue xsi:type="typens:CodedValue"> <Name>South District<\/Name> <Code xsi:type="xs:string">SD<\/Code> <\/CodedValue> <CodedValue xsi:type="typens:CodedValue"> <Name>Cades Cove District<\/Name> <Code xsi:type="xs:string">CC<\/Code> <\/CodedValue> <\/CodedValues><\/GPCodedValueDomain2><\/PRE>私が見たいのは、値とコードがアルファベット順に並んでいることですが、そうなっていません。まずは少しExcelの魔法です。Domain to Tableツールを使って、ドメインをExcelスプレッドシートにエクスポートしました。そしてソートを実行しました。<\/P><\/P><\/P><\/P>次にフィールド計算です。ここではXML要素はプレーンテキストで、CODEとVALUEはセル参照を使っています。<\/P><\/P>= "<CodedValue xsi:type=\"\"typens:CodedValue\"\"><Name>"&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;b2&b2&b2&b2&b2&b2&b2&b2&b2&b2&b2&b2&b2&b2&b2&b2&b2&b2&b2&b2&b2&b2&b2&b2&b2&b2&b2&b2&b2&b2&b2&b2&b2&b2&b2&b2&b2&b2&b2&b2&b2&b2&b2ampbampbampbampbampbampbampbampbampbampbampbampbampbampbampbampbampbampbampbampbampbampbamptpmpmpmpmpmpmpmpmpmpmpmpmpmpmpmpmpmpmpmpmpmpmpmpmpppmtmptmptmptmptmptmptmptmptmptmptmptmptmptmptmptmptmptmptmptmptmptmptmptmptmptmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtmtpmtpmtpmtpmtpmtpmtpmtpmtpmtpmtpmtpmtpmtpmtpmtpmtpmtpmtpmtpmtpmtpmtpmtpmtpmtpmtpmtpmtpmtpmtpmtpmtpmtpmtpmtpmtpmtpmtpmtpmtpmtpmtpmtpmttpmttpmttpmttpmttpmttpmttpmttpmttpmttpmttpmttpmttpmttpmttpmttpmttpmttpmttpmttpmttpttpttpttpttpttpttpttpttpttpttpttpttpttpttpttpttpttpttpttpttpttpttpttpttpttpttpttpttpsspspspspspspspspspspspspspspspspspspspspspspspspspsp
この数式がすべて一行で改行なしであることに注意してください。そうしないと、結果を貼り付けたときに不要な場所に引用符が追加されてしまいます!<\/P>
次に、Excelの数式結果を貼り付けてXML定義を更新し、XML要素(のみ!)を置き換えます:<\/P>
UPDATE [dbo].[GDB_ITEMS]SET DEFINITION = '\n<GPCodedValueDomain2 xmlns:xsi=\"<\\/SPAN>http:\/\\/www.w3.org\\/2001\\/XMLSchema-instance<\\/A>\" xmlns:xs=\"<\\/SPAN>http:\/\\/www.w3.org\\/2001\\/XMLSchema<\\/A>\" xmlns:typens=\"<\\/SPAN>http:\/\\/www.esri.com\\/schemas\\/ArcGIS\\/10.0<\\/A>\" xsi:type=\"typens:GPCodedValueDomain2\"> <\\/SPAN> \n  ; < ; DomainName > ; District & lt ; \/DomainName & gt ; \n  ; & lt ; FieldType & gt ; esriFieldTypeString & lt ; \/FieldType & gt ; \n  ; & lt ; MergePolicy & gt ; esriMPTDefaultValue & lt ; \/MergePolicy & gt ; \n  ; & lt ; SplitPolicy & gt ; esriSPTDefaultValue & lt ; \/SplitPolicy & gt ; \n  ; & lt ; Description & gt ; Desc & lt ; \/Description & gt ; \n  ; & lt ; Owner & gt ; DBO & lt ; \/Owner & gt ; \n  ; & lt ; CodedValues xsi:type=\ "typens:ArrayOfCodedValue \ "> ; \ n< ; CodedValue xsi:type = " typens:CodedValue ">< ; Name > Cades Cove District < / Name > < lt Code xsi:type = " xs:string "> CC < / Code > < / CodedValue > \ n< CodedValue xsi:type = " typens:CodedValue ">< lt Name > North District < / Name > < lt Code xsi:type = " xs:string "> ND < / Code > < / CodedValue > \ n< CodedValue xsi:type = " typens:CodedValue ">< lt Name > South District < / Name > < lt Code xsi:type = " xs:string "> SD < / Code > < / CodedValue > \ n  ; < / CodedValues > \ n < / GPCodedValueDomain2 > \ n' \ nWHERE NAME = 'District'< / PRE >< P >< IMG alt = "fffff.JPG " class = " jive-image image-3 " src = " https : //us.v-cdn.net /6038851/uploads /legacyfs /online /45909_fffff.JPG " style = " height : auto ; display : block ; margin-left : auto ; margin-right : auto ; " />大きなドメインで何十または何百ものドメイン値があり、それらをアルファベット順に並べたい場合や、「Description」のテキストをキャメルケースに変換するなどグローバルな更新が必要な場合に非常に便利だと感じています。< / P >< P >< / P >< P >ExcelとNotepad ++のTextFXツールプラグインなどの高度なテキストエディタを組み合わせることで、属性ドメインの管理が非常に効率的になります!< / P >< P >< / P >< P >< EM style = " font-size : 13px ; font-family : arial, helvetica, 'helvetica neue', verdana, sans-serif ; " >これは個人ブログであり、上記の方法を推奨、支持、またはサポートするものではありません。ESRIソフトウェアスタック外でSQLを使用してデータを変更することはサポートされておらず、十分な理解と災害復旧計画なしに本番データベースに適用すべきではありません。< / EM >< / P >< / BODY >< / HTML >
Did the table get renamed? My EGDB does not have a table dbo.GDB_ITEMS.
I am at 10.9 and it's now in a table called "sde.GDB_ITEMS".
The reason I am searching for it is because I can't get permission to save a new value in ArcGIS Pro.
If I can edit it in SQL Server Studio and reorder the items at the same time, that is acceptable.
I wonder how ThomasColson’s technique would work for Oracle geodatabases, since the DEFINITION column is stored as a CLOB, not text (but available as text in a view). I guess we could just convert our modified XML to a CLOB using an SQL query, then use SQL to UPDATE the table value?
サインインしたメンバーは投稿、更新のフォローなどができます。初めてですか?無料アカウントを登録してください。
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.