Виды в Oracle
Создание видов может улучшить время ответов на запросы путем ограничения количество таблиц и столбцов, в которых выполняется поиск при запросе данных. Можно создать представления, которые отображаются в клиентских приложениях в качестве классов объектов или непространственных таблиц. Вид ArcSDE может ссылаться на отдельную таблицу или класс объектов, а также можно создать виды для объединения данных из нескольких таблиц.
Любой пользователь, имеющий необходимые разрешения, может создать представления с помощью SQL или команды sdetable. Кроме того, виды можно использовать для редактирования данных, если вид создается с возможностью редактирования. Сведения о правах доступа, необходимых для создания или изменения видов в вашей версии, можно получить в компании Oracle.
Доступ к определениям видов в Oracle можно получить, выполнив запрос к виду словаря данных ALL_VIEWS.
Словарь данных Oracle сохраняет информацию о видах
При создании видов в базе данных Oracle с использованием SQL или команды sdetable, виды определяются в словаре данных Oracle. Поэтому можно выполнить запрос к словарю данных Oracle для просмотра определений видов.
Oracle предоставляет вид, доступный для пользователя, ALL_VIEWS, который описывает все виды, к которым имеет доступ подключенный пользователь. Ниже приведено определение вида ALL_VIEWS.
DESCRIBE all_views;
Имя (Name) |
Null? |
Тип |
---|---|---|
OWNER |
NOT NULL |
VARCHAR2(30) |
VIEW_NAME |
NOT NULL |
VARCHAR2(30) |
TEXT_LENGTH |
NUMBER |
|
ТЕКСТ |
LONG |
|
TYPE_TEXT_LENGTH |
NUMBER |
|
TYPE_TEXT |
VARCHAR2(4000) |
|
OID_TEXT_LENGTH |
NUMBER |
|
OID_TEXT |
VARCHAR2(4000) |
|
VIEW_TYPE_OWNER |
VARCHAR2(30) |
|
VIEW_TYPE |
VARCHAR2(30) |
|
SUPERVIEW_NAME |
VARCHAR2(30) |
|
EDITIONING_VIEW* |
VARCHAR2(1) |
|
READ_ONLY* |
VARCHAR2(1) |
*Представлено только в базах данных Oracle 11g.
Виды имеют владельцев, имена и текст. Столбец TEXT в ALL_VIEWS содержит текст запроса, который определяет вид.
Помимо ограничения доступа к некоторым записям, следует также использовать виды для таблиц, содержащих несколько столбцов SDO_Geometry или ST_Geometry, чтобы можно было зарегистрировать их в ArcSDE. ArcSDE не поддерживает слои с несколькими столбцами геометрии, поэтому, чтобы зарегистрировать их, необходимо сначала создать вид, содержащий только один столбец геометрии. Чтобы узнать, как это сделать для таблиц Oracle Spatial, см. статью базы знаний Создание вида Oracle для слоя Oracle Spatial (содержащего несколько столбцов геометрии) и регистрации его в ArcSDE. Инструкции по выполнению этих действий с таблицами, содержащими несколько столбцов ST_Geometry, см. в разделе Использование пространственных видов с таблицами со столбцом ST_Geometry.