2010-08-03 3 views
0

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

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

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

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

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

+1

Какую версию Oracle вы используете? –

+0

Я использую 10 г ................. – Egalitarian

ответ

2

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

  • разделить большие данные на куски, прежде чем прикасаться к базе данных
  • отправки к базе данных в CLOB и позволяя обрабатывать его в базе данных (скажем, с точки зрения и ВМЕСТО триггером)

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

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

+0

Я использую ORACLE 10g ................. – Egalitarian

+0

@Egalitarian - Все это говорит мне, что вы должны были укусить пулю и переместиться в CLOB давным-давно. Это * деталь *, а не «детали вашего приложения». Что делает ваше приложение с этими большими объемами данных? Как он взаимодействует с базой данных? На каком языке он написан? – APC

Смежные вопросы