|
clob построчно
|
|||
---|---|---|---|
#18+
Добрый день. Пробую считать содержимое clob поля таблицы построчно. Используя для этого dbms_lob.instr, dbms_lob.substr если небольшое количество строк то ещё ничего у меня же этих строк 57348 и время за которое выбирается строка в переменную большое, я даже нестал до конца ждать(было больше 20 минут). В чем здесь может быть дело. Что еще можно использовать для построчного чтения clob ? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2009, 11:10 |
|
clob построчно
|
|||
---|---|---|---|
#18+
r900000В чем здесь может быть дело. В 17-ой строке ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2009, 11:12 |
|
clob построчно
|
|||
---|---|---|---|
#18+
r900000, Навскидку несколько вариантов 1.instr, substr не над всем CLOB делать 2. JAVA StringTokenizer 3. через dbms_lob.read работать .... ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2009, 11:45 |
|
clob построчно
|
|||
---|---|---|---|
#18+
r900000Добрый день. Пробую считать содержимое clob поля таблицы построчно. Используя для этого dbms_lob.instr, dbms_lob.substr если небольшое количество строк то ещё ничего у меня же этих строк 57348 и время за которое выбирается строка в переменную большое, я даже нестал до конца ждать(было больше 20 минут). В чем здесь может быть дело. Что еще можно использовать для построчного чтения clob ? клоб построчно ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2009, 12:30 |
|
clob построчно
|
|||
---|---|---|---|
#18+
ILoveCoffee, + regexp ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2009, 12:34 |
|
clob построчно
|
|||
---|---|---|---|
#18+
r900000Добрый день. Пробую считать содержимое clob поля таблицы построчно. Используя для этого dbms_lob.instr, dbms_lob.substr если небольшое количество строк то ещё ничего у меня же этих строк 57348 и время за которое выбирается строка в переменную большое, я даже нестал до конца ждать(было больше 20 минут). В чем здесь может быть дело. Что еще можно использовать для построчного чтения clob ? Что-то мне подсказывает, что Вы при парсинге меняете параметр nth, а надо менять offset. И все будет хорошо. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2009, 13:12 |
|
clob построчно
|
|||
---|---|---|---|
#18+
В процедуре у меня сделано так: sobch varchar2(4000); s clob; ..... select t into s from t2; i1:=0; i2:=0; i3:=1; loop i2:=dbms_lob.instr(s,CHR (10),1,i1+1); sobch := dbms_lob.substr(s,i2-i3,i3); i3:=i2+1; i1:=i1+1; IF i1>57348 THEN EXIT; END IF; end loop; 1) и как тут можно не над всем CLOB делать, когда мне нужно каждую строку считать? 2) На JAVA пока не хотелось бы делать это, если без неё здесь можно обойтись(или нельзя)? 3) А какая разница использовать dbms_lob.read или dbms_lob.substr? Вы уверены что с dbms_lob.read будет быстрее работать? Тоже долго делает я это вроде тоже проверил: sobch:=''; iobch:=i2-i3; dbms_lob.read(s, iobch, i3, sobch); Да версия 9 oracle а в ней regexp не работает ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2009, 13:56 |
|
clob построчно
|
|||
---|---|---|---|
#18+
Да у меня и такой вариант есть, тоже долго работает: .... i2:=dbms_lob.instr(s,CHR (10),i3+1,1); i3:=i3+i2-ipr; ipr:=i2; i1:=i1+1; .... ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2009, 14:00 |
|
clob построчно
|
|||
---|---|---|---|
#18+
Тоже приходилось разбирать большой clob (строки с разделителями). Решил привести его к XML, чтобы потом стандартно обрабатывать. Для этого нужна быстрая функция clob_replace. Все варианты, которые пробовал (через dbms_lob.instr/dbms_lob.substr) тормозили не по детски. Сделал хранимку на Java - скорость вполне устроила. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2009, 14:56 |
|
clob построчно
|
|||
---|---|---|---|
#18+
А можно на примере. Как вы это сделали. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2009, 15:03 |
|
clob построчно
|
|||
---|---|---|---|
#18+
Java -модуль, оставил только функцию replaceClob Код: plaintext 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. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47.
Функция обертка (у меня в пакете, где все функции Java) Код: plaintext 1. 2. 3. 4.
Пример Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23.
... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2009, 15:42 |
|
clob построчно
|
|||
---|---|---|---|
#18+
Или так. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
Но разбор XML быстрее через xmldom. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2009, 18:09 |
|
clob построчно
|
|||
---|---|---|---|
#18+
Ругается при компиляции java класса на строку content=content.replaceAll(find,replace); говорит replaceAll не может найти. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2009, 07:31 |
|
clob построчно
|
|||
---|---|---|---|
#18+
Вероятно у Вас версия java ниже 1.4, т.к. replaceAll появился в 1.4 Соответственно или обновить версию или написать свою функцию replace на Java. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2009, 09:33 |
|
clob построчно
|
|||
---|---|---|---|
#18+
Например такой вариант. Код: plaintext 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. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64.
Попробовал, работает в 2-3 раза быстрее стандартной replaceAll. Вероятно из-за того, что replaceAll поддерживает регулярные выражения. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2009, 10:23 |
|
clob построчно
|
|||
---|---|---|---|
#18+
r900000В процедуре у меня сделано так: i2:=dbms_lob.instr(s,CHR (10), 1,i1+1 ); .. вы ответы, вообще, читаете? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2009, 10:36 |
|
clob построчно
|
|||
---|---|---|---|
#18+
Пишем простой автомат. Должно работать быстрее всего. Код: plaintext 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2009, 11:21 |
|
clob построчно
|
|||
---|---|---|---|
#18+
givanovПишем простой автомат. Должно работать быстрее всего. Код: plaintext 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2009, 11:27 |
|
clob построчно
|
|||
---|---|---|---|
#18+
А в вашем запросе select /* regexp_substr(str,'[^'||chr(9)||']+',1,1) f1, regexp_substr(str,'[^'||chr(9)||']+',1,2) f1, regexp_substr(str,'[^'||chr(9)||']+',1,3) f1, */ * from ( select extract(column_value,'/b/text()').getStringVal() str from table( xmlsequence(xmltype( '<a><b>' || -- clob_replace java_pck.replaceclob ((select reestr from log_table where t.id=2124),chr(13)||chr(10),'</b><b>') || '</b></a>' ).extract('//b') ) ) ) вместо java_pck.replaceclob если не в пакете нужно, наверно, replaceclob поставить, и все равно ваш запрос мне возвратил одну пустую строку. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2009, 08:28 |
|
clob построчно
|
|||
---|---|---|---|
#18+
Так что разбираете? Я же не знаю какие у Вас разделители. Может у вас не chr(13)||chr(10), а chr(10). И поля может не табуляцией, а запятой разделены. Киньте пример clob'a. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2009, 09:32 |
|
clob построчно
|
|||
---|---|---|---|
#18+
Разделитель между строчками CHR (10), а в строчках столбцы(данные) разделены пробелами. Prices and Yield Trade's Volume Best on closing KZT/USD Currency Type Clean price for bonds Yield to maturity Price (gross price for bond) in number in Clean price Yield to maturity Price Deals NIN or Listing exchange of of ID Date Code Open High Low Last Average Open High Low Last Average Open High Low Last Average of securities US dollar Bid Offer Bid Offer Bid Offer number NSIN category rate quote securities records Date Code OpenCP HighCP LowCP LastCP AverageCP OpenY HighY LowY LastY AverageY OpenP HighP LowP LastP AverageP Volume VolUSD BidCP OfferCP BidY OfferY BidP OfferP Deals NIN Listing Rate Currency Type ID 02.10.2007 aASAVb2 0 0 94,0826 98,4167 11,0000 8,9990 976,5622 1019,9033 0 KZPC2Y03C346 C 120,9800 KZT 4 2208269 ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2009, 09:39 |
|
clob построчно
|
|||
---|---|---|---|
#18+
У меня работает. Ваш clob в (select reestr from sverkareestr t where t.id=1) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2009, 09:45 |
|
clob построчно
|
|||
---|---|---|---|
#18+
А так еще разбор по словам (если слов в строке много, то столбцы неудобно вырисовывать) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2009, 09:52 |
|
clob построчно
|
|||
---|---|---|---|
#18+
r900000Разделитель между строчками CHR (10), а в строчках столбцы(данные) разделены пробелами. Prices and Yield Trade's Volume Best on closing KZT/USD Currency Type Clean price for bonds Yield to maturity Price (gross price for bond) in number in Clean price Yield to maturity Price Deals NIN or Listing exchange of of ID Date Code Open High Low Last Average Open High Low Last Average Open High Low Last Average of securities US dollar Bid Offer Bid Offer Bid Offer number NSIN category rate quote securities records Date Code OpenCP HighCP LowCP LastCP AverageCP OpenY HighY LowY LastY AverageY OpenP HighP LowP LastP AverageP Volume VolUSD BidCP OfferCP BidY OfferY BidP OfferP Deals NIN Listing Rate Currency Type ID 02.10.2007 aASAVb2 0 0 94,0826 98,4167 11,0000 8,9990 976,5622 1019,9033 0 KZPC2Y03C346 C 120,9800 KZT 4 2208269 Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8.
в общем могу подсказать первый шаг как выташить строки.. из файла.. дальше уже рег_экспы или класические сабстры тибе в помощь.. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2009, 10:24 |
|
clob построчно
|
|||
---|---|---|---|
#18+
Anton_DSr900000Разделитель между строчками CHR (10), а в строчках столбцы(данные) разделены пробелами. Prices and Yield Trade's Volume Best on closing KZT/USD Currency Type Clean price for bonds Yield to maturity Price (gross price for bond) in number in Clean price Yield to maturity Price Deals NIN or Listing exchange of of ID Date Code Open High Low Last Average Open High Low Last Average Open High Low Last Average of securities US dollar Bid Offer Bid Offer Bid Offer number NSIN category rate quote securities records Date Code OpenCP HighCP LowCP LastCP AverageCP OpenY HighY LowY LastY AverageY OpenP HighP LowP LastP AverageP Volume VolUSD BidCP OfferCP BidY OfferY BidP OfferP Deals NIN Listing Rate Currency Type ID 02.10.2007 aASAVb2 0 0 94,0826 98,4167 11,0000 8,9990 976,5622 1019,9033 0 KZPC2Y03C346 C 120,9800 KZT 4 2208269 Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8.
в общем могу подсказать первый шаг как выташить строки.. из файла.. дальше уже рег_экспы или класические сабстры тибе в помощь.. Блин тока там разделители подправь.. у миня тм походу заяпятые, но я думаю разберешься с логикой запроса. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2009, 10:25 |
|
|
start [/forum/topic.php?fid=52&fpage=73&tid=1882342]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
34ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
60ms |
get tp. blocked users: |
2ms |
others: | 257ms |
total: | 397ms |
0 / 0 |