У нас есть таблица, содержащая, среди прочего, координаты. Раньше мы хранили их в двух числовых полях (x и y), но теперь заменили их полем SDO_GEOMETRY. Для обратной совместимости мы создали представление (с тем же именем, что и у таблицы), где мы делаем:
создать или заменить представление meas_pnt как select ..., m.position.SDO_POINT.X x_coordinate, m.position.SDO_POINT.Y y_coordinate из meas_pnt_tab m;
Это работает как для чтения, так и для записи, но при записи десятичных чисел в представление десятичные числа теряются. Я не могу понять, почему. Кто-нибудь может помочь? Следующее иллюстрирует проблему:
обновить meas_pnt_tab m установить m.position.SDO_POINT.x = 2.3, где meas_key=1; выберите m.position.SDO_POINT.X из meas_pnt_tab m, где meas_key=1; -> х равно 2,3. Хороший!
обновить meas_pnt, установить x_coordinate = 2,3, где meas_key=1; выберите m.position.SDO_POINT.X из meas_pnt_tab m, где meas_key=1; -> х равно 2.