Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / SDO_GEOMETRY в виртуальном столбце. / 4 сообщений из 4, страница 1 из 1
08.12.2016, 21:21
    #39362991
JoeD
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SDO_GEOMETRY в виртуальном столбце.
11.2.0.4 В таблице столбец SDO_COL типа SDO_GEOMETRY. Из-за неизвестных мне архитектурных мотивов (в Oracle) в простом селекте к полям типа можно обращаться только если у таблицы есть элиас. Ну да ладно, будем считать это мягким подталкиванием к их использованию. А как создать виртуальный столбец на основе SDO_? CREATE и ALTER вроде элиасы не понимают?
.. SDO_COL SDO_GEOMETRY, sdo_x number generate always as (SDO_COL.SDO_POINT.X) VIRTUAL); -- ORA-54016

Пока вывернулся создав FUNCTION GET_SDO(sdo_in SDO_GEOMETRY) RETURN SDO_GEOMETRY DETERMINISTIC as BEGIN return sdo_in; end;

и

.. always as (get_sdo(SDO_COL).SDO_POINT.X))

что выглядит IMHO садомией. Есть другие способы?
...
Рейтинг: 0 / 0
09.12.2016, 00:43
    #39363066
Alexander Ryndin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SDO_GEOMETRY в виртуальном столбце.
Обычная view вместо virtual column не подойдет?
...
Рейтинг: 0 / 0
09.12.2016, 02:16
    #39363075
Sayan Malakshinov
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SDO_GEOMETRY в виртуальном столбце.
JoeD,


JoeDИз-за неизвестных мне архитектурных мотивов (в Oracle) в простом селекте к полям типа можно обращаться только если у таблицы есть элиасможно обращаться и нормально, просто имя столбца обрамите в скобки:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
with v as (
select
MDSYS.SDO_GEOMETRY(
      2001,
      NULL,
      MDSYS.SDO_POINT_TYPE(12, 14, NULL),
      NULL,
      NULL) x from dual
)
select 
 (x).sdo_point.x
from v
...
Рейтинг: 0 / 0
09.12.2016, 19:27
    #39363815
JoeD
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SDO_GEOMETRY в виртуальном столбце.
Alexander RyndinОбычная view вместо virtual column не подойдет?
Это запасной вариант, который может еще пригодится - значения нужны далеко не всем, а скорости дополнительные вычисления не прибавляют.
xtender(x).sdo_point.x
".. и дураком помрешь"(с) :) Спасибо, так работает.
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / SDO_GEOMETRY в виртуальном столбце. / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]