Проблема произошла, когда объединение \ минус на Oracle clob - PullRequest
1 голос
/ 24 ноября 2011

У меня есть таблица с именем «preference», которая включает более 100 столбцов в Oracle, я написал немного сложный SQL, для которого нужно использовать ключевое слово UNION / INTERSECT / MINUS для выполнения запроса.Возьмем простой пример:

 select a.* from preference a where a.id = ? union
 select a.* from preference a where a.id = ?

Бизнес-услуги были изменены из-за хранения строки по запросу неограниченной длины.один столбец необходимо переопределить для типа Clob.Oracle не разрешает объединение для типа clob, поэтому в идеале здесь нельзя использовать a. *.

Я изменил SQL следующим образом:

 select a.a,a.b,a.c... from preference a where a.id = ? union
 select a.a,a.b,a.c... from preference a where a.id = ?

В нем перечислены все столбцы, кроме clobа затем я должен сделать еще один выбор, чтобы добавить значение Clob вместе.Это хорошая идея?

Другая проблема, возникшая из приведенного выше случая, заключается в том, что: как я уже упоминал, эта таблица имеет большие столбцы, список всех столбцов в sql делает SQL намного длиннее.Есть ли выражение, которое я могу выбрать все столбцы, но избавиться от конкретного?

1 Ответ

1 голос
/ 24 ноября 2011

Oracle при работе с журналом не разрешает объединение / минус, но разрешает объединение всех, может быть, вы можете переписать свой запрос, используя объединение всех, и использовать select .в предложении select вы можете ввести select. или перечислить каждый столбец.

После прочтения вашего вопроса моя основная проблема - использование памяти на Java. Используете ли вы orm для загрузки данных?или вы используете jdbc API?

Если вы загружаете все сгустки в несколько строк, вы можете завершить OutOfMemoryError.Мой совет - загружать clob только для строк, которые необходимо показать пользователю (или для строк, в которых должно быть обработано поле clob).

Можете ли вы дать больше информации о вашем приложении (число строк, которое оно должно обработать) и ваших данных (особенно размер сгустка)?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...