Как массово изменить псевдонимы полей?
-
- Активный участник
- Сообщения: 244
- Зарегистрирован: 03 мар 2015, 10:01
- Репутация: 24
- Откуда: Санкт-Петербург
Как массово изменить псевдонимы полей?
Подскажите, пожалуйста, как можно удалить псевдонимы полей и заменить их на значения имени поля, не открывая каждый раз свойства поля? В Arcgis 10.2 нет инструмента "Изменить поле", есть ли какой-то другой способ?
-
- Гуру
- Сообщения: 731
- Зарегистрирован: 12 янв 2011, 22:40
- Репутация: 304
- Ваше звание: ∀
Re: Как массово изменить псевдонимы полей?
Если это небольшая файловая БД, можно экспортировать её в XML, отредактировать и импортировать в новую базу. Если SDE, можно попробовать сделать это через SQL.
- Игорь Лебедь
- Завсегдатай
- Сообщения: 452
- Зарегистрирован: 24 апр 2010, 19:47
- Репутация: 101
- Откуда: Город в клёнах и акациях
- Контактная информация:
Re: Как массово изменить псевдонимы полей?
1) Экспортируйте через Data Interoperability Tools в mid \ mif, откройте mif notepad++-ом, переименуйте текстовый файл, сохраните, экспортируйте в АРК обратно.
2) Или импорт в PostgreSQL/PostGIS и писайт скрипт типа
экспорт шейпа обратно в АРК.
2) Или импорт в PostgreSQL/PostGIS и писайт скрипт типа
Код: Выделить всё
ALTER TABLE [ ONLY ] name [ * ]
RENAME [ COLUMN ] column TO new_column
-
- Активный участник
- Сообщения: 244
- Зарегистрирован: 03 мар 2015, 10:01
- Репутация: 24
- Откуда: Санкт-Петербург
Re: Как массово изменить псевдонимы полей?
Ariki писал(а):Если это небольшая файловая БД, можно экспортировать её в XML, отредактировать и импортировать в новую базу.
это наверное немного не то, что я имела ввиду. отредактировать примерно так же можно и в арккаталогеИгорь Лебедь писал(а):1) Экспортируйте через Data Interoperability Tools в mid \ mif, откройте mif notepad++-ом, переименуйте текстовый файл, сохраните, экспортируйте в АРК обратно.
шейп, к сожалению, не подходит, у меня длинные имена, которые не представляется запихнуть в 10 знаков без потери смысла=(
а можно поподробнее, как этим пользоваться? нет опыта написания скриптов и запросов, кроме как из аркмэпAriki писал(а):можно попробовать сделать это через SQL.
-
- Гуру
- Сообщения: 731
- Зарегистрирован: 12 янв 2011, 22:40
- Репутация: 304
- Ваше звание: ∀
Re: Как массово изменить псевдонимы полей?

Запускаете SQL Server Management Studio, подключаетесь к базе данных, выбираете её в левой панели, жмёте кномку "Создать запрос" на панели инструментов вверху. Текст запроса у меня получился такой:
Код: Выделить всё
update dbo.GDB_ITEMS set Definition.modify('delete(/DETableInfo/GPFieldInfoExs/GPFieldInfoEx/AliasName)') where Type = 'cd06bc3b-789d-4c51-aafa-a467912b8965';
Здесь dbo.GDB_ITEMS - имя служебной таблицы, содержащей информацию об объектах ГБД в поле Definition в форме XML. Запрос удаляет элемент AliasName из определения всех полей всех таблиц. Значение поля Type = 'cd06bc3b-789d-4c51-aafa-a467912b8965' соответствует таблицам, для пространственных классов нужно подставить '70737809-852c-4a03-9e22-2cecea5b9bfa'. Но лучше уточните, просмотрев данные в таблице GDB_ITEMS с помощью той же SQL Server Management Studio. Вы можете ограничить изменение только некоторыми таблицами, добавив условие where по полю Name.
В целом же лучше туда не лезть без опыта. Я сам сейчас впервые попробовал, пока вроде ничего не сломалось, но кто его знает. Хорошо бы после удаления добавить обратно пустой элемент AliasName или, ещё лучше, поместить в него значение элемента Name, но но у меня сейчас нет времени разбираться, как это сделать, у меня нет особого опыта ни в SQL Server, ни в XQuery. По ссылке выше человек модифицирует псевдоним класса пространственных объектов, можно использовать как пример.
Но если вариант с экспортом всей базы в XML вам подходит, вы можете сделать то же самое в текстовом редакторе, например, в Notepad++ с помощью регулярных выражений. Есть и специализированные редакторы XML, в них точно так же можно массово изменять данные, не обязательно править всё вручную.
-
- Активный участник
- Сообщения: 244
- Зарегистрирован: 03 мар 2015, 10:01
- Репутация: 24
- Откуда: Санкт-Петербург
Re: Как массово изменить псевдонимы полей?
Спасибо большое! Очень полезная информация, с файловой GDB разобралась, с SDE тоже попробую, потом наверняка пригодится.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость