Oracle OleDB и LONG Тип данных - PullRequest
0 голосов
/ 03 июля 2018

у нас очень устарелое приложение .NET, которое должно извлекать данные из поля типа LONG в Oracle. Я проводил достаточно обширные исследования и знаю, что тип данных устарел, но сейчас мы не можем этого сделать.

Проблема OleDb извлекает из поля только 100 байт, его можно расширить до 65535 байт, если вы добавите Chunksize = 65535 в строку подключения. Нам нужно больше.

Короче говоря, я протестировал на Oracle 11g несколько запросов, и кажется, что если вы выберете одно поле (или даже всю таблицу), будет возвращено все поле, если вы объедините таблицы, то поле будет усечено.

ВЫБРАТЬ ПОЛЕ ИЗ ТАБЛИЦЫ => возвращено все поле SELECT * FROM TABLE => возвращено все поле ВЫБРАТЬ * ИЗ ТАБЛИЦЫ T ЛЕВАЯ РЕЙТИНГ ТАБЛИЦА 1 T1 ЛЕВАЯ ПРИСОЕДИНЯЙТЕСЬ К ТАБЛИЦЕ 2 T2 ... => усеченный

Я знаю, что SELECT * - это плохо (я не писал этот запрос), я, очевидно, могу использовать первый запрос, и, вероятно, я это сделаю.

То, о чем я просил, - это ссылка на документацию, объясняющую, как работает эта оптимизация, если таковая существует. Для меня имеет смысл, если он возвращает ТОЛЬКО все поле, если вы выберете только это поле (это похоже на оптимизацию для борьбы с ленивыми разработчиками ...).

Заранее спасибо

...