Проблема с SDO_GEOMETRY C # и Oracle 12 - PullRequest
0 голосов
/ 14 января 2019

Здравствуйте, у меня есть приложение на 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})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...