Здравствуйте, у меня есть приложение на c #, которое обращается к базе данных Oracle (версия 12.1.0).
У меня есть таблица, которая содержит SDO_GEOMETRY COLUMN. Я сгенерировал UDT-файл sdo_geomtry с инструментами разработчика Oracle для Visual Studio.
С oracle 11 все работало нормально, но когда я обновился до 12c, я заметил странную проблему: после выбора большого количества строк (20 000) поле SDO_ORDINATES будет нулевым (все остальные столбцы в порядке). Я думал, что данные были повреждены, но когда я проверил с базой данных, данные были в порядке. Я даже нашел первую сущность с SDO_ORDINATES как NULL и выбрал ее с моим приложением, все было в порядке, SDO_ORDINATES имел правильные значения.
Я работаю с Oracle Data.Access.dll версии 4.121.2.0.
То, что я пытался сделать:
Я пытался создать новый UDT из этой темы: Как объявить MDSYS.Sdo_Geometry в c # , возникает та же проблема.
Попытка снова экспортировать данные в более старую базу данных (с версией 11): это сработало.
Пытался использовать sdo_util.to_wktgeometry, и это сработало, но я не хочу его использовать, потому что это сильно влияет на производительность.
Я начинаю думать, что это проблема с памятью, но точно не знаю ...
Есть идеи?
SELECT id, geometry FROM locations;
example of geometry:
mdsys.sdo_geometry(2003, 4326, mdsys.sdo_point) type (null,null,null),
{1, 1003, 1},
{1.1, 1.2, 1.3, 1.1, 1.5, 1.1, 1.0, 1.3, 2, 1.7})