|
|
|
SELECT запрос с CLOB полями с сортировкой по времени
|
|||
|---|---|---|---|
|
#18+
Коллеги всем привет! Очень выручите если поделитесь экспиренсом куда копать и в чем может быть проблема. Нужно выполнить следующий запрос: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. При запросе возникает ошибка: ORA-01861: literal does not match format string Или же запрос выполняется, но неадекватно долго. Порядка 20-30 минут. Как я понял ошибка возникает из-за clob значений. При выполнении аналогичного запроса с удалением всех полей типа clob, он отлично отрабатывает. При выполнении запроса без сортировки С clob полями, он отрабатывает. Как только в запросе присутствуют поля типа clob и сортировка по дате, вылетает ошибка. Буду очень благодарен, если кто-то с таким сталкивался и поделится опытом. Сам ранее с Oracle не встречался. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2018, 17:19 |
|
||
|
SELECT запрос с CLOB полями с сортировкой по времени
|
|||
|---|---|---|---|
|
#18+
kroper34КоллегиЯвисты здесь не коллеги. kroper34Как я понял ошибка возникает из-за clob значений.Ты заблуждаешься. kroper34ORA-01861: literal does not match format stringТы или твоё приложение не умеете bind-иться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2018, 17:28 |
|
||
|
SELECT запрос с CLOB полями с сортировкой по времени
|
|||
|---|---|---|---|
|
#18+
kroper34, а нужны ли цлобы в запросе? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2018, 17:28 |
|
||
|
SELECT запрос с CLOB полями с сортировкой по времени
|
|||
|---|---|---|---|
|
#18+
andreymx, Да, нужны, значения в этих полях являются очень важными. Пробовал вложенный запрос с преобразованием в varchar2 - не помогло. :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2018, 17:30 |
|
||
|
SELECT запрос с CLOB полями с сортировкой по времени
|
|||
|---|---|---|---|
|
#18+
Elickroper34ORA-01861: literal does not match format stringТы или твоё приложение не умеете bind-иться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2018, 17:32 |
|
||
|
SELECT запрос с CLOB полями с сортировкой по времени
|
|||
|---|---|---|---|
|
#18+
kroper34При запросе возникает ошибка: ORA-01861: literal does not match format string Код: plsql 1. Скорее всего ты передаешь параметр типа строка а не DATE. Посему происходит неявное преобразование строки в дату исходя из формата дат по умолчанию для данной сессии. Hапример, код выполняет: Код: plsql 1. и передает параметр '20181123' . Если формат дат по умолчанию для сессии 'yyyy/mm/dd', то: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. А если формат дат по умолчанию для сессии 'dd/mm/yyyy', то: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Так-что либо используй DATE параметр либо Код: plsql 1. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2018, 17:39 |
|
||
|
SELECT запрос с CLOB полями с сортировкой по времени
|
|||
|---|---|---|---|
|
#18+
andreymx, К, сожалению я не знаю, что это значит. В моем случае БД нужна мне только для выполнения SELECT запросов по шедулеру, с указанием чекпоинта, отслеживающего новые строки. Если по простому можете объяснить, возможно ли решить мой вопрос на стороне клиента, буду очень благодарен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2018, 17:41 |
|
||
|
SELECT запрос с CLOB полями с сортировкой по времени
|
|||
|---|---|---|---|
|
#18+
SY, Спасибо большое за ответ! Такие варианты пробовал, не увенчались успехом. При твоем варианте, сейчас получил новую ошибку: Код: html 1. Настараживает тот момент, что при удалении из запроса полей типа CLOB, запрос без проблем отрабатывает в течении 2-3 сек. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2018, 17:46 |
|
||
|
SELECT запрос с CLOB полями с сортировкой по времени
|
|||
|---|---|---|---|
|
#18+
kroper34, И какой-же формат ты указал? SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2018, 17:54 |
|
||
|
SELECT запрос с CLOB полями с сортировкой по времени
|
|||
|---|---|---|---|
|
#18+
Покажи окончательный запрос и значение переменной ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2018, 17:54 |
|
||
|
SELECT запрос с CLOB полями с сортировкой по времени
|
|||
|---|---|---|---|
|
#18+
SY, yyyy-mm-dd hh24:mi:ss.ff и yyyy-mm-dd hh24:mi:ss.f варианты пробовал Значения приходят типа, 0000-00-00 00:00:00.0 Думаю, эта ошибка возникает из-за того что поле уже типа DATE ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2018, 17:57 |
|
||
|
SELECT запрос с CLOB полями с сортировкой по времени
|
|||
|---|---|---|---|
|
#18+
kroper34, а если не лоб-ы тянуть в запросе, а dbm_lob.substr ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2018, 17:58 |
|
||
|
SELECT запрос с CLOB полями с сортировкой по времени
|
|||
|---|---|---|---|
|
#18+
andreymx, Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. Может быть причиной поля типа CLOB или точно не в этом дело? Просто чтобы хоть как-то сузить поиск. У меня есть подозрения на кривую таблицу, к которой цепляюсь, но к сожалению к серверной части доступа нет, чтобы все проверить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2018, 18:01 |
|
||
|
SELECT запрос с CLOB полями с сортировкой по времени
|
|||
|---|---|---|---|
|
#18+
kroper34SY, yyyy-mm-dd hh24:mi:ss.ff и yyyy-mm-dd hh24:mi:ss.f варианты пробовал Значения приходят типа, 0000-00-00 00:00:00.0 Думаю, эта ошибка возникает из-за того что поле уже типа DATE yyyy-mm-dd hh24:mi:ss.ff - Это TIMESTAMP. Тогда: Код: plsql 1. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2018, 18:01 |
|
||
|
SELECT запрос с CLOB полями с сортировкой по времени
|
|||
|---|---|---|---|
|
#18+
orawish, Я пробовал эту функцию, и даже пробовал ее указывать во вложенном запросе, откуда уже тянул char поле - не помогло ( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2018, 18:02 |
|
||
|
SELECT запрос с CLOB полями с сортировкой по времени
|
|||
|---|---|---|---|
|
#18+
kroper34, Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2018, 18:04 |
|
||
|
SELECT запрос с CLOB полями с сортировкой по времени
|
|||
|---|---|---|---|
|
#18+
SY, Спасибо за ответ! К сожалению, после этого новая ошибка: Код: html 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2018, 18:06 |
|
||
|
SELECT запрос с CLOB полями с сортировкой по времени
|
|||
|---|---|---|---|
|
#18+
kroper34orawish, Я пробовал эту функцию, и даже пробовал ее указывать во вложенном запросе, откуда уже тянул char поле - не помогло ( покажите (а то, впечатление, что вы пугаетесь ~куста ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2018, 18:06 |
|
||
|
SELECT запрос с CLOB полями с сортировкой по времени
|
|||
|---|---|---|---|
|
#18+
kroper34Спасибо за ответ! К сожалению, после этого новая ошибка: Убери ORDER BY. Какoй смысл сортировать для вставки если реляционная таблица это неупорядоченное множество? SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2018, 18:17 |
|
||
|
SELECT запрос с CLOB полями с сортировкой по времени
|
|||
|---|---|---|---|
|
#18+
orawish, Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. В запросе используется одно из полей типа CLOB. Запрос не отрабатывает. Если убрать сортировку - сразу все ок. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2018, 18:17 |
|
||
|
SELECT запрос с CLOB полями с сортировкой по времени
|
|||
|---|---|---|---|
|
#18+
SY, У меня запрос весит на шедулере, у которого есть чекпоинт значение в данном случае - INSERT_DATE. При очередном выполнении запроса, он смотрит на последнюю дату в выборке последнего селекта и начинает новый с новых записей таблицы. Делается для исключения дубликатов в новом запросе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2018, 18:19 |
|
||
|
SELECT запрос с CLOB полями с сортировкой по времени
|
|||
|---|---|---|---|
|
#18+
kroper34SY, У меня запрос весит на шедулере, у которого есть чекпоинт значение в данном случае - INSERT_DATE. При очередном выполнении запроса, он смотрит на последнюю дату в выборке последнего селекта и начинает новый с новых записей таблицы. Делается для исключения дубликатов в новом запросе. Ну и причем тут ORDER BY в INSERT? Но дело не в этом: ORA-06512: at "WMSYS.WM_CONCAT_IMPL". Этого в INSERTе нет, значит ты где-то конкaтенируешь строки. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2018, 18:26 |
|
||
|
SELECT запрос с CLOB полями с сортировкой по времени
|
|||
|---|---|---|---|
|
#18+
SY, Ты, прав по логике сортировка не нужна, но в клиенте ПО, которое я использую, это условие зашито для построения запроса. Но все же как ты и сказал, сортировка тут проблемой быть не должна. Про конкат честно говоря не очень понял, где я могу косячить :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2018, 18:30 |
|
||
|
SELECT запрос с CLOB полями с сортировкой по времени
|
|||
|---|---|---|---|
|
#18+
kroper34Про конкат честно говоря не очень понял, где я могу косячить :( В INSERTе указаны поля или есть вызовы функций? Также "на шедулере" только INSERT или INSERT только часть задания? SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2018, 18:36 |
|
||
|
SELECT запрос с CLOB полями с сортировкой по времени
|
|||
|---|---|---|---|
|
#18+
SY, Не совсем понял о каких INSERTах идет речь? Я выполняю SELECT запросы, как все устроено на стороне сервера я не могу сказать. Знаю только названия полей и их тип. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2018, 18:39 |
|
||
|
SELECT запрос с CLOB полями с сортировкой по времени
|
|||
|---|---|---|---|
|
#18+
Вернее ошиба которую ты привел возникает когда ты выполняешь INSERT или при выполнении всего задания? SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2018, 18:40 |
|
||
|
SELECT запрос с CLOB полями с сортировкой по времени
|
|||
|---|---|---|---|
|
#18+
kroper34SY, Не совсем понял о каких INSERTах идет речь? Я выполняю SELECT запросы, как все устроено на стороне сервера я не могу сказать. Знаю только названия полей и их тип. Упс, Почему-то казалось у тебя INSERT SELECT. SELECT проходит если убрать ORDER BY? SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2018, 18:43 |
|
||
|
SELECT запрос с CLOB полями с сортировкой по времени
|
|||
|---|---|---|---|
|
#18+
SY, Что интересно, да, SELECT без ORDER BY работает, но при этом тоже с выводом ошибки: java.lang.RuntimeException: java.lang.RuntimeException: java.sql.SQLException: ORA-01652: unable to extend temp segment by 128 in tablespace TEMP ORA-06512: at "WMSYS.WM_CONCAT_IMPL", line 31 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2018, 18:47 |
|
||
|
SELECT запрос с CLOB полями с сортировкой по времени
|
|||
|---|---|---|---|
|
#18+
kroper34SY, Что интересно, да, SELECT без ORDER BY работает, но при этом тоже с выводом ошибки: java.lang.RuntimeException: java.lang.RuntimeException: java.sql.SQLException: ORA-01652: unable to extend temp segment by 128 in tablespace TEMP ORA-06512: at "WMSYS.WM_CONCAT_IMPL", line 31 Еще раз, в SELECTe указаны поля или есть вызовы функций? Приведи структуру таблицы "IWTM"."ARC_VIEW_OBJECTS". SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2018, 18:50 |
|
||
|
SELECT запрос с CLOB полями с сортировкой по времени
|
|||
|---|---|---|---|
|
#18+
SY, Что ты подразумеваешь под структурой? Все что я знаю о таблице: названия полей, их описание и тип данных. Представь что SELECT состоит из 4 полей: object_id - Number(20) - идентификатор события monitorcode - Varchar2(4000) - Тип события insert_date - timestamp - Дата вставки события categories - clob - Категории события Вот нужно мне сделать SELECT из этих полей с сортировкой по insert_date. Делаю такой запрос: Код: plsql 1. 2. 3. 4. 5. 6. 7. Но запрос не отрабатывает. Как только убираю поле clob, отрабатывает. Нужно чтобы отработало вместе с clob полем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2018, 19:03 |
|
||
|
SELECT запрос с CLOB полями с сортировкой по времени
|
|||
|---|---|---|---|
|
#18+
Выполни без ORDER BY: Код: plsql 1. 2. 3. 4. 5. 6. 7. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2018, 19:06 |
|
||
|
SELECT запрос с CLOB полями с сортировкой по времени
|
|||
|---|---|---|---|
|
#18+
SY, java.sql.SQLDataException: ORA-01861: literal does not match format string[SRC HTML][/SRC] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2018, 19:09 |
|
||
|
SELECT запрос с CLOB полями с сортировкой по времени
|
|||
|---|---|---|---|
|
#18+
kroper34SY, java.sql.SQLDataException: ORA-01861: literal does not match format string Ну ведь сказали уже - используй TO_TIMESTAMP: Код: plsql 1. 2. 3. 4. 5. 6. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2018, 19:11 |
|
||
|
SELECT запрос с CLOB полями с сортировкой по времени
|
|||
|---|---|---|---|
|
#18+
SY, Очень долго, но выполнился. Минуты 2-3 ждал. Для сравнения запрос из 25 полей без фильтров и сортировок ~2-3 сек. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2018, 19:18 |
|
||
|
SELECT запрос с CLOB полями с сортировкой по времени
|
|||
|---|---|---|---|
|
#18+
kroper34SY, Очень долго, но выполнился. Минуты 2-3 ждал. Для сравнения запрос из 25 полей без фильтров и сортировок ~2-3 сек. Сколько строк возвращает? Выполни: Код: plsql 1. 2. 3. и покажи результат. Затем выполни: Код: plsql 1. 2. 3. 4. 5. 6. и огласи время выполнeния. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2018, 19:23 |
|
||
|
SELECT запрос с CLOB полями с сортировкой по времени
|
|||
|---|---|---|---|
|
#18+
SY, 193639 Второй запрос возвращает ошибку ORA-00923: FROM keyword not found where expected ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2018, 19:28 |
|
||
|
SELECT запрос с CLOB полями с сортировкой по времени
|
|||
|---|---|---|---|
|
#18+
kroper34, Код: plsql 1. 2. 3. 4. 5. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2018, 19:30 |
|
||
|
SELECT запрос с CLOB полями с сортировкой по времени
|
|||
|---|---|---|---|
|
#18+
SY, Выполнялся достаточно долго, около 40 сек ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2018, 19:32 |
|
||
|
SELECT запрос с CLOB полями с сортировкой по времени
|
|||
|---|---|---|---|
|
#18+
kroper34SY, Выполнялся достаточно долго, около 40 сек А теперь: Код: plsql 1. 2. 3. 4. 5. 6. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2018, 19:34 |
|
||
|
SELECT запрос с CLOB полями с сортировкой по времени
|
|||
|---|---|---|---|
|
#18+
SY, Для примера без проблем работает следующий запрос к другой таблице этой же БД, в SELECT присутствует одно поле типа CLOB. Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2018, 19:35 |
|
||
|
SELECT запрос с CLOB полями с сортировкой по времени
|
|||
|---|---|---|---|
|
#18+
SY, +/- так же, возможно немного дольше, секунд 45. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2018, 19:38 |
|
||
|
SELECT запрос с CLOB полями с сортировкой по времени
|
|||
|---|---|---|---|
|
#18+
kroper34SY, +/- так же, возможно немного дольше, секунд 45. T.e. без CLOB 40 sec без ORDER BY и 45 c (хотя данные уже в buffer cache). C CLOBом без ORDER BY 2 минуты - минутa 20 сек. прочесть 193,639 CLOBов а тут завиит от размера CLOBов, кстати какой?). Теперь: Код: plsql 1. 2. 3. 4. 5. 6. 7. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2018, 19:45 |
|
||
|
SELECT запрос с CLOB полями с сортировкой по времени
|
|||
|---|---|---|---|
|
#18+
SY, По размерам CLOB, к сожалению, инфы дать не могу, но подозреваю, что бывают очень большие. Последний запрос не отрабатывает, возвращает ошибку: Код: html 1. Так же попробовал такой фильтр, работает в разы быстрее, но с сортировкой опять тухло: Код: html 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2018, 19:51 |
|
||
|
SELECT запрос с CLOB полями с сортировкой по времени
|
|||
|---|---|---|---|
|
#18+
kroper34но с сортировкой опять тухло: А так? Код: plsql 1. 2. 3. 4. 5. 6. 7. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2018, 19:58 |
|
||
|
SELECT запрос с CLOB полями с сортировкой по времени
|
|||
|---|---|---|---|
|
#18+
А вообще, я бы время на сортиовку и не тратил. Тебе нужна max INSERT_DATE последнего SELECTa, так и вычисляй ее в java сравнивая MAX_INSERT_DATE c INSERT_DATE прочитанной строки. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2018, 20:04 |
|
||
|
SELECT запрос с CLOB полями с сортировкой по времени
|
|||
|---|---|---|---|
|
#18+
SY, Спасибо большое за помощь! Завтра буду ещё пробовать, если что-то получится, отпишусь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2018, 20:23 |
|
||
|
SELECT запрос с CLOB полями с сортировкой по времени
|
|||
|---|---|---|---|
|
#18+
SY, В итоге уже 3 дня стабильно отрабатывает следующий запрос: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. Опытным путем выявил данную длину при преобразовании CLOB полей и параметры запуска шедулера (каждые 20 мин). В итоге подозреваю, что попадались поля с крайней большим размером, и либо не хватало ОЗУ на клиенте, либо присутствуют ограничения по размеру поля на стороне клиентского ПО. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2018, 22:02 |
|
||
|
SELECT запрос с CLOB полями с сортировкой по времени
|
|||
|---|---|---|---|
|
#18+
kroper34, Дай-ка угадаю, а читаешь ты их в java.lang.String, вместо явной обработки LOB? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2018, 12:59 |
|
||
|
|

start [/forum/topic.php?all=1&fid=52&tid=1883108]: |
0ms |
get settings: |
8ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
148ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
96ms |
get tp. blocked users: |
1ms |
| others: | 205ms |
| total: | 496ms |

| 0 / 0 |
