Вы можете напрямую запросить системную таблицу версии базы геоданных, используя SQL для определения релиза базы геоданных. Этот метод позволяет также определить версию ArcGIS Pro, используемую для создания или обновления базы геоданных.
Вы также можете запросить XML-информацию о релизе базы геоданных, если вам не нужна версия ArcGIS Pro.
Запрос к таблице версий
Для определения релиза базы геоданных используйте SQL для запроса к таблице версий (sde_version in Microsoft SQL Server и PostgreSQL).
Номера релизов хранятся в нескольких полях таблицы версий. Эта таблица содержит основные, второстепенные версии и версии исправления ошибок, а также поля, в которых хранится полный релиз базы геоданных.
Основная версия соответствует значительным изменениям релиза базы геоданных. Второстепенная версия обозначается числом справа от точки (.) в релизе ArcGIS. Версия исправления ошибок увеличивается, если вы установили пакет обновления, патч или исправление, которые привели к изменениям в схеме базы геоданных, или установили релиз исправления ошибок. Например, для 10.6.1: номер основной версии - 10, дополнительный номер версии - 6, а номер исправления ошибок - 1.
Если вы создаете или обновляете базу геоданных из ArcGIS Pro, в поле описания будет показано объединенное значение основной и второстепенной версий, версии исправления ошибок и версии ArcGIS Pro, из которой вы создали или обновили базу геоданных. Если вы не создаете или не обновляете базу геоданных из ArcGIS Pro, в поле описания вместо номера версии ArcGIS Pro будут отображаться нули.
Чтобы найти полный релиз базы геоданных, запросите столбец описания таблицы версий.
-- Queries an sde-schema geodatabase in SQL Server
-- Returns the geodatabase release from the sde_version table.
SELECT Description AS "Geodatabase release"
FROM sde.sde_version
-- Queries a geodatabase in PostgreSQL
-- Returns the geodatabase release from the sde_version table.
SELECT description AS "Geodatabase release"
FROM sde.sde_version;
-- Queries a geodatabase in Oracle
-- Returns the geodatabase release from the version table.
SELECT DESCRIPTION AS "Geodatabase release"
FROM sde.version;
Запрос XML-документа для определения релиза базы геоданных
Значение номера релиза может быть получено из документа XML для определения версии базы геоданных.
Номера версий хранятся как основные, второстепенные и версии исправления ошибок. В XML основной версией является числовой код, соответствующий основному релизу базы геоданных. ArcGIS 8 был первым релизом, включающим функциональность базы геоданных ArcGIS, поэтому ArcGIS 8 соответствует основной версии 1. ArcGIS 9 соответствует основной версии 2, а ArcGIS 10 - основной версии 3.
Второстепенная версия обозначается числом справа от точки (.) в релизе ArcGIS. Например, номер неосновной версии для версии 10.6 - 6.
Версия исправления ошибок увеличивается, если вы установили пакет обновления, патч или исправление, которые привели к изменениям в схеме базы геоданных, или установили релиз исправления ошибок. Например, номер версии исправления ошибок для 10.6.1 равен 1.
Следующие запросы выдают номер основной версии, номер второстепенной версии и номер версии исправлений базы геоданных:
-- Queries a dbo-schema geodatabase in SQL Server
-- Gets the geodatabase release from the workspace catalog item.
SELECT
Definition.value('(/DEWorkspace/MajorVersion)[1]', 'smallint') AS "Major version",
Definition.value('(/DEWorkspace/MinorVersion)[1]', 'smallint') AS "Minor version",
Definition.value('(/DEWorkspace/BugfixVersion)[1]', 'smallint') AS "Bug fix version"
FROM
dbo.gdb_items AS items INNER JOIN
(SELECT UUID
FROM dbo.gdb_itemtypes
WHERE Name = 'Workspace') AS itemtypes
ON items.Type = itemtypes.UUID
-- Queries PostgreSQL
-- Gets the geodatabase release from the workspace catalog item.
SELECT (xpath('//MajorVersion/text()',definition))::text as "Major version", (xpath('//MinorVersion/text()',definition))::text as "Minor version", (xpath('//BugfixVersion/text()',definition))::text as "Bug fix version"
FROM sde.gdb_items AS items INNER JOIN (SELECT uuid FROM sde.gdb_itemtypes WHERE name = 'Workspace') AS itemtypes
ON items.type = itemtypes.uuid;
-- Queries Oracle
-- Gets the geodatabase release from the workspace catalog item.
SELECT
EXTRACTVALUE(XMLType(Definition), '/DEWorkspace/MajorVersion') AS "Major version",
EXTRACTVALUE(XMLType(Definition), '/DEWorkspace/MinorVersion') AS "Minor version",
EXTRACTVALUE(XMLType(Definition), '/DEWorkspace/BugfixVersion') AS "Bug fix version"
FROM
sde.gdb_items_vw items INNER JOIN
(SELECT UUID
FROM sde.gdb_itemtypes
WHERE Name = 'Workspace') itemtypes
ON items.Type = itemtypes.UUID;