Инструмент геообработки Изменить тип хранения можно использовать, чтобы переносить двоичные, пространственные и растровые столбцы из одного типа хранения в другой. Это можно сделать, задав ключевое слово конфигурации, содержащее параметр ATTRBUTE_BINARY, GEOMETRY_STORAGE или RASTER_STORAGE для нового типа хранения, в который вы собираетесь выполнить преобразование.
Важно создать ключевое слово конфигурации, содержащее правильный параметр и его значение. Если указать ключевое слово с неправильной информацией или не указать часть данных, сведения считываются из ключевого слова DEFAULTS. Esri рекомендует создать пользовательское ключевое слово специально для переноса данных. Убедитесь, что ключевое слово содержит параметр и значение, используемые для переноса данных, а также параметр UI_TEXT. Параметр UI_TEXT позволяет использовать ключевое слово в клиентах ArcGIS.
Далее представлены поддерживаемые каждой системой управления базами данных (СУБД) пути переноса данных:
СУБД | Параметр конфигурации | Перенос из/в |
---|---|---|
Oracle | ATTRIBUTE_BINARY | Long raw в BLOB |
GEOMETRY_STORAGE | Long raw (SDEBINARY) в BLOB (SDELOB) | |
Long raw (SDEBINARY) в ST_Geometry | ||
BLOB (SDELOB) в ST_Geometry | ||
SDO_Geometry в ST_Geometry | ||
RASTER_STORAGE | Long raw в BLOB | |
Long raw в ST_Raster* | ||
BLOB в ST_Raster* | ||
PostgreSQL | RASTER_STORAGE | Bytea в ST_Raster* |
SQL Server | RASTER_STORAGE | Image в ST_Raster* |
GEOMETRY_STORAGE | SDEBINARY в Geometry | |
SDEBINARY в Geography | ||
OGCWKB в Geometry | ||
OGCWKB в Geography | ||
Атрибуты геометрии хранятся в таблице, привязанной к атрибутам геометрии, хранящимся в столбце базовой таблицы |
*ST_Raster должен быть установлен в базу геоданных. Инструкции см. в разделах Установка ST_Raster в Oracle, Установка ST_Raster в PostgreSQL или Установка ST_Raster в SQL Server.
Зачем нужен перенос данных?
Далее приведены причины для переноса ваших данных:
- Если вы хотите получить доступ к пространственным или растровым данным с использованием Structured Query Language (SQL).
- Для переноса из типа данных, который не будет поддерживаться в будущем, в поддерживаемый тип
Доступ к данным с помощью SQL
Доступ к информации в базе геоданных через SQL позволяет внешним приложениям (разработанным не в среде ArcObjects) работать с табличными данными, управляемыми базой геоданных. Если этим приложениям требуется доступ к пространственным или растровым данным в базе геоданных, вы должны сохранить их в типах данных, предоставляющих доступ через SQL. Например, использование типа хранения ST_Geometry позволяет получить доступ к векторным данным с помощью SQL, что не так просто при хранении данных в полях типа BLOB или long raw.
Перенос из типов данных, которые не будут поддерживаться в будущих версиях
Oracle рекомендует использовать типы данных BLOB или BFILE вместо типов данных long raw в своих базах данных. Хотя столбцы long raw все еще поддерживаются, если у вас есть атрибут, геометрия или растровые поля типа long raw в базе геоданных в Oracle, вы должны перенести их в другой формат, чтобы подготовиться к тому, что они больше не будут поддерживаться.
Хранением атрибутов, геометрии и растровых столбцов в базе геоданных управляют параметры конфигурации: ATTRIBUTE_BINARY, GEOMETRY_STORAGE и RASTER_STORAGE соответственно. Если вы создали базу геоданных на Oracle в ArcGIS 9.2 или более ранней версии, эти параметры могли быть настроены на использование типа данных long raw, поскольку этот тип всегда использовался по умолчанию.
Если ваша база геоданных в Oracle была создана в ArcGIS 9.3 или более поздней версии (а не обновлена с версии ArcGIS 9.2 или более ранней), создаваемые вами данные не будут использовать тип хранения long raw. Однако существующие данные, созданные со всеми этими параметрами или их частью, заданными как LONG RAW, или новые данные в обновленных базах геоданных с такими параметрами, заданными как LONG RAW, все равно будут содержать столбцы long raw. Чтобы изменить типы данных для этих столбцов, необходимо поменять настройки ключевого слова конфигурации и перенести данные.
Требования при переносе данных
Перед преобразованием данных необходимо выполнение следующих условий:
- Вы должны создать резервную копию данных перед тем, как их переносить.
- При преобразовании типа данных пространственного столбца данные должны храниться в пространственной привязке высокой точности. Если данные хранятся в базовой точности, сначала их нужно перевести в высокую точность, перед изменением типа хранения. Для перехода к высокой точности используйте инструмент геообработки Обновить пространственную привязку.
- Таблица или класс объектов должны быть зарегистрированы в базе геоданных.
- Ключевое слово конфигурации, указываемое при переносе типа данных, должно содержать правильное значение параметра GEOMETRY_STORAGE, ATTRIBUTE_BINARY или RASTER_STORAGE. Например, если требуется перенести столбец геометрии long raw в ST_Geometry, но указано ключевое слово с параметром GEOMETRY_STORAGE, заданным как SDO_GEOMETRY, перенос данных завершится ошибкой, так как такой путь переноса не поддерживается.
- Вы должны войти в систему как владелец таблицы, содержащей переносимый столбец.
- Для переноса класса объекта в тип SQL Server Geography, данные должны быть в одной из систем координат, поддерживаемых типом Geography.