Проблема с LONG в Oracle - PullRequest
       3

Проблема с LONG в Oracle

0 голосов
/ 03 августа 2010

У меня есть старая база данных Oracle, в которой есть поле типа LONG (максимальный размер 2 ГБ)

Раньше раньше это работало нормально, но со временем мы начали помещать данные, размер которых был намного больше 2 ГБ, поэтому мы столкнулись с проблемой.

Я не могу изменить тип поля с LONG на CLOB, так как это создаст много проблем, так как для работы с типом CLOB придется внести в продукт бесчисленные изменения.

Разделение данных на куски и последующее размещение - вариант, но как нам это сделать?

Может кто-нибудь предложить способ справиться с этим. Желательно код или ссылка на код.

Ответы [ 2 ]

2 голосов
/ 03 августа 2010

Проблема в том, что вы никогда не можете передать более 2 ГБ переменной LONG.Таким образом, у вашего приложения есть два варианта:

  • разбить большие данные на куски перед тем, как прикоснуться к базе данных
  • отправив базе данных CLOB и разрешив базе данных обработать ее (скажем, с помощью представления иТриггер INSTEAD OF)

Какой подход будет работать лучше для вас, зависит от деталей вашего приложения.Дайте нам больше информации, и мы можем дать вам конкретный совет.

На самом деле - это третий вариант.Типы данных LONG и LONG RAW устарели уже более десяти лет.Возможно, пришло время двигаться дальше ...

0 голосов
/ 03 августа 2010

Вас может заинтересовать эта статья о LONGs от Адриана Биллингтона .

...