|
|
|
проблема записи в CLOB русских букв через jdbc:oracle:thin драйвер
|
|||
|---|---|---|---|
|
#18+
Если я использую драйвер jdbc:oracle:oci8, то код Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. то на строке tempClobWriter.flush() вылетаю с сообщением: "Исключение ввода/вывода: End of TNS data channel ..." На чтение тоже проблема. С jdbc:oracle:oci8 работает. При использовании jdbc:oracle:thin получаем сообщение об ошибке Fail to convert between UTF8 and UCS2 Я понимаю, что можно использовать NCLOB, но вопрос именно в том, как правильно работать с CLOB. Если надо самому кодировать/декодировать, то подскажите, что надо сделать с String value = "Привет"; перед записью в CLOB (пример кодирования и декодирования при чтении). Заранее спасибо. Игорь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2005, 17:33 |
|
||
|
проблема записи в CLOB русских букв через jdbc:oracle:thin драйвер
|
|||
|---|---|---|---|
|
#18+
Какая версия Oracle и JDBC, какая кодировка базы? Posted via ActualForum NNTP Server 1.2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2005, 18:03 |
|
||
|
проблема записи в CLOB русских букв через jdbc:oracle:thin драйвер
|
|||
|---|---|---|---|
|
#18+
база 8.1.7 AMERICAN_AMERICA.CL8MSWIN1251 клиент 9.2 AMERICAN_AMERICA.CL8MSWIN1251 (ojdbc14.zip) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2005, 18:26 |
|
||
|
проблема записи в CLOB русских букв через jdbc:oracle:thin драйвер
|
|||
|---|---|---|---|
|
#18+
Попробуй добавить файл nls_charset12.zip к CLASSPATH. Он упоминается здесь: Java: Русские буквы и не только... в разделе Драйвер JDBC-thin от Oracle . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2005, 18:46 |
|
||
|
проблема записи в CLOB русских букв через jdbc:oracle:thin драйвер
|
|||
|---|---|---|---|
|
#18+
Спасибо ! помогло. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2005, 18:57 |
|
||
|
проблема записи в CLOB русских букв через jdbc:oracle:thin драйвер
|
|||
|---|---|---|---|
|
#18+
Осталась проблема с чтением CLOB при использовании thin-дряйвера : После добавления nls_charset12.zip при записи в базу все проходит нормально Пишу : ЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮ.йцукенгшщзхъфывапролджэячсмитьбю.Ё Вижу в toad то же самое. Но при чтении в java вижу : ????????????????.???????????????? код чтения: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. где еще грабли ? Заранее спасибо ! Игорь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2005, 10:31 |
|
||
|
проблема записи в CLOB русских букв через jdbc:oracle:thin драйвер
|
|||
|---|---|---|---|
|
#18+
Igor-65 clob.getCharacterStream(1).read(buffer,0,(int) clob.length()); String strClob = new String( chunk ); System.out.println(strClob); Не buffer ли там должно быть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2005, 12:15 |
|
||
|
проблема записи в CLOB русских букв через jdbc:oracle:thin драйвер
|
|||
|---|---|---|---|
|
#18+
Попробуй просто: Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2005, 12:29 |
|
||
|
проблема записи в CLOB русских букв через jdbc:oracle:thin драйвер
|
|||
|---|---|---|---|
|
#18+
Да buffer. но проблему не решает. Причем если я пытаюсь испоьлзовать в базе не CLOB, а NCLOB, то получаю java.io.IOException: Набор символов не поддерживается !!: DBConversion если использую CLOB, то получаю ???????? Причем, записывается в базу все правильно: и CLOB, и NCLOB Драйвер oci работает нормально. куда копать ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2005, 12:32 |
|
||
|
проблема записи в CLOB русских букв через jdbc:oracle:thin драйвер
|
|||
|---|---|---|---|
|
#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. не помогло. Эффект тот же. причем, записываю в базу строчку 0) ЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮ.йцукенгшщзхъфывапролджэячсмитьбю.Ё!ё№;%:?*()qwertyuiop[]asdfghjkl;'zxcvbnm,./ а вижу при чтении: 0) ????????????????.????????????????!??;%:?*()qwertyuiop[]asdfghjkl;'zxcvbnm,./ даже количество ? не соответствует кол-ву русских букв. при чтении String strClob = clob.getSubString(1, (int)clob.length()); из-за неверной перекодировки в хвосте зачитываемого массива образуется мусор из нулевых байт (просим ведь clob.length()). nls_charset12.zip я забирал с http://www.oracle.com/technology/software/tech/java/sqlj_jdbc/htdocs/jdbc9201.html ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2005, 12:53 |
|
||
|
проблема записи в CLOB русских букв через jdbc:oracle:thin драйвер
|
|||
|---|---|---|---|
|
#18+
Я поэкспериментировал у себя - ничего лучшего чем записывать в CLOB через putChars() , а получать из него через getSubString() не придумывается, во всех остальных случаях идет возня с кодировкой. Причем это можно проверить даже без таблиц - просто заполняя CLOB и вытаскивая из него данные. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. Есть шанс перейти на другую версию Oracle и/или изменить кодирову базы на юникод? ИМХО достаточное количество проблем с кодировкой отпадет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2005, 15:33 |
|
||
|
проблема записи в CLOB русских букв через jdbc:oracle:thin драйвер
|
|||
|---|---|---|---|
|
#18+
Спасибо, Денис но... К сожалению, поменять кодировку базы нельзя. Как мне сказали, в качестве клиента висит центура, которая не поймет unicod... какойнибудь простой метод кодирования/декодирования моего текста можешь посоветовать ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2005, 16:00 |
|
||
|
проблема записи в CLOB русских букв через jdbc:oracle:thin драйвер
|
|||
|---|---|---|---|
|
#18+
нашел способ читать clob через thin. Но только с использованием dbms_lob Код: 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. Еще идеи ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2005, 16:03 |
|
||
|
проблема записи в CLOB русских букв через jdbc:oracle:thin драйвер
|
|||
|---|---|---|---|
|
#18+
ничего себе изврат. :) Posted via ActualForum NNTP Server 1.2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2005, 16:58 |
|
||
|
проблема записи в CLOB русских букв через jdbc:oracle:thin драйвер
|
|||
|---|---|---|---|
|
#18+
Igor-65, вот этот код работает без проблем на oracle. Кодировка базы windows-1251, кодировка java по умолчанию, судя по java.nio.charset.Charset.defaultCharset() UTF-8: Код: java 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. А вообще, чтобы избежать проблем с кодировкой, лучше сохранять в BLOB и потом при формировании String просто указывать нужную кодировку. А все эти CLOB и прочие имеют уж очень много скрытых настроек. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2016, 08:10 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=33102072&tid=2123922]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
42ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
56ms |
get tp. blocked users: |
2ms |
| others: | 208ms |
| total: | 348ms |

| 0 / 0 |
