|
|
|
Смена кодировки файла из-под java
|
|||
|---|---|---|---|
|
#18+
Уже нашел, разобрался=). Они у меня на диске(документация) Блин, записал 5 xml в clob, сделал поиск по контексту и выборку. А надо, оказывается, не в clob, а в xmltype, без использования pl/sql и уже там с XPATH находить нужный узел, но если записывать через переменную и встречается "я" маленькая, то invalid character 0xFF, с остальными русскими буквами нормально, как например: num=stmt.executeUpdate("insert into worker(id,xdoc) values(10,sys.XMLType.CreateXML('"+cmd+"'))"); Где cmd-строка. Если не очень маленькая-скажет, что строковый литерал слишком большой. Как быть(?) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2005, 15:59 |
|
||
|
Смена кодировки файла из-под java
|
|||
|---|---|---|---|
|
#18+
Sober Код: plaintext Иди через CLOB. Сперва создай его (через CLOB.createTemporary(), к примеру), наполни его данными, после чего вызови PreparedStatement: Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2005, 16:14 |
|
||
|
Смена кодировки файла из-под java
|
|||
|---|---|---|---|
|
#18+
Хорошая идея, пожалуй, не догадался бы до этого. Только, наверное, не XMLType(?), а sys.XMLType.CreateXML(?) иначе, пожалуй, ругнется. Там, правда, может быть LPX--00007(unexpected end-of-file), если использовать симв. поток i. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2005, 17:21 |
|
||
|
Смена кодировки файла из-под java
|
|||
|---|---|---|---|
|
#18+
Те же прежние грабли: даже после выборки из clob и вставки его в xmltype так же ругается на "я"(странное, но ведь xmltype-тот же clob по идее, только что oracle сообщается, что там хранится xml-документ). По сути это почти единственная проблема, которая еще не до конца решена. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2005, 13:30 |
|
||
|
Смена кодировки файла из-под java
|
|||
|---|---|---|---|
|
#18+
Какая версия базы, в какой она создана кодировке? Приведи пример XML (можно приложить файл к сообщению) и укажи его кодировку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2005, 13:51 |
|
||
|
Смена кодировки файла из-под java
|
|||
|---|---|---|---|
|
#18+
9i Release1. Кодировка там вроде по-умолчанию стоит(...кириллица windows) у xml-документов:windows-1251(стандартное). А один из файлов уже приводил. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2005, 17:30 |
|
||
|
Смена кодировки файла из-под java
|
|||
|---|---|---|---|
|
#18+
Этот XML? Вроде как там шла речь про "И". но у себя я ошибку повторить не могу, поскольку, создав файл "C:/Tmp/test.xml" с содержимым: Код: plaintext и кодировкой Cp1251, уже приведенный код с небольшим изменением: Код: plaintext 1. 2. 3. 4. 5. 6. отработал нормально. Но у меня база в кодировке UTF8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2005, 17:49 |
|
||
|
Смена кодировки файла из-под java
|
|||
|---|---|---|---|
|
#18+
Да, он. Насчет того, что вместо И->? было дело, при использовании временного lob и clob таблицы. Ладно, пока ее оставлю. Если повторится- сообщу. В xmltype все же ругается на "я" вполне возмножно из-за win1251(можно,конечно, "я"-> "Я",=), но при выгрузке сделать обратное). А у тебя какая версия? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2005, 13:41 |
|
||
|
Смена кодировки файла из-под java
|
|||
|---|---|---|---|
|
#18+
Oracle9i Enterprise Edition Release 9.2.0.6.0 Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 Кодировка везде UTF8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2005, 13:54 |
|
||
|
Смена кодировки файла из-под java
|
|||
|---|---|---|---|
|
#18+
А, тут еще одна неясность: если во временый clob записать док-т, а потом вытащить, то он выдаст не все,а длину lob(clob.length) покажет как размер док-та(что верно), и этот остаток (до конца) он заполняет нулями. В результате после "execute" (XMLType(?) и setClob(1,clob)) он и выдает этот error ввиде "unexpected end-of-file". Сегодня еще попробую обойти, а потом приведу код. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2005, 16:36 |
|
||
|
Смена кодировки файла из-под java
|
|||
|---|---|---|---|
|
#18+
Странные у тебя ошибки какие-то, я все не могу из воспроизвести:) Что понимается под "остаток (до конца)"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2005, 19:13 |
|
||
|
Смена кодировки файла из-под java
|
|||
|---|---|---|---|
|
#18+
Вот, например(фрагмент): Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. The CLOB is:3216 <?xml version="1.0" encoding="windows-1251"?> <metaData xmlns="http://www.wmo.ch/www/metadata"><metadataFileIdentifier>http://cliware.meteo.ru/egfd_catalog/metadata/oa_goms_Planeta.xml</metadataFileIdentifier><metadataLanguage>ru</metadataLanguage><metadataContact><organisationName>ГУ Всероссийский НИИ гидрометеорологической информации - МЦД</organisationName><role>user</role><individualName>Хохлова Анна Владимировна</individualName><positionName>Зав. Отделом аэрологии</positionName><contactInfo><phone><voice>+7(08439)74-680</voice></phone><address><city>Королева,6 г.Обнинск</city><administrativeArea>Калужская</administrativeArea><postalCode>249035</postalCode><country>РОССИЯ</country><electronicMailAddress>anna@meteo.ru</electronicMailAddress></address></contactInfo></metadataContact><metadataDateStamp>2005-06-07</metadataDateStamp><metadataStandardName>WMO19115</metadataStandardName><metadataStandardVersion>0.2</metadataStandardVersion><identificationInfo><citation><resourceTitle>Государственный фонд Росгидромета. Спутниковые данные.</resourceTitle><resourceIdentifier>Монтажи спутниковых изображений (GOMS)</resourceIdentifier></citation><abstract>До 1998г. фотомонтажи спутниковых изображений из НИЦ "Планета" поступали на фотопленках. Начиная с 1998г. монтажи поступают на новых технических носителях (CD ROM). На них представлены монтажи спутниковых изображений, полученных с полярно-орбитальных или геостационарных спутников. Монтажи сопровождаются отдельными файлами, содержащими информацию о времени наблюдений.</abstract><pointOfContact><organisationName>ГУ Всероссийский НИИ гидрометеорологической информации - МЦД</organisationName><role>custodian</role><individualName>Шакирзянов Идрис Закирзянович</individualName><positionName>Начальник центра метаданных</positionName><contactInfo><phone><voice>+7(08439)74-158</voice><facsimile>+7(095)255-22-25</facsimile></phone><address><city>Королева, 6 г.Обнинск</city><administrativeArea>Калужская</administrativeArea><postalCode>249035</postalCode><country>РОССИЯ</country><electronicMailAddress>idr@meteo.ru</electronicMailAddress></address><onlineAddress>www.meteo.ru</onlineAddress></contactInfo></pointOfContact><resourceMaintenance><maintenanceAndUpdateFrequency>annually</maintenanceAndUpdateFrequency></resourceMaintenance><spatialRepresentationType>bitmap</spatialRepresentationType><dataCharacterSet>8859part5</dataCharacterSet><topicCategory>satelliteObservation</topicCategory><topicCategory>imageryBaseMapsEarthCover</topicCategory><descriptiveKeywords>Наблюдение</descriptiveK А дальше некоторое кол-во нулей ввиде квадратов(здесь они не отображаются) В общем так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2005, 16:48 |
|
||
|
Смена кодировки файла из-под java
|
|||
|---|---|---|---|
|
#18+
SoberВот, например(фрагмент): Код: plaintext 1. 2. 3. Конечно, он тебе будет выводить в консоль весь cbuf, хотя в него прочиталось len символов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2005, 17:15 |
|
||
|
Смена кодировки файла из-под java
|
|||
|---|---|---|---|
|
#18+
Ладно, допустим так. Можно, конечно, и не выводить. Но, если его длина такая же, как и размер файла, то в нем весь xml(или не обязательно?). Во всяком случае, при подстановке clob-файл оказывается не до конца записан. Можно, конечно, уже готовый clob таблицы, где у меня эти док-ты уже есть и вытаскиваются без проблем, подставить в xmltype, но хотелось бы с этим разобраться.=) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2005, 17:45 |
|
||
|
Смена кодировки файла из-под java
|
|||
|---|---|---|---|
|
#18+
Про то, как выводить, уже говорили . Насчет "не до конца записан" - покажи код. Может ты поток не закрываешь или хотя-бы не сбрасываешь перед вызовом записи CLOB'а в базу? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2005, 17:56 |
|
||
|
Смена кодировки файла из-под java
|
|||
|---|---|---|---|
|
#18+
Код приведу. Поток закрываю иначе не запишется. А что ты подразумеваешь под сбросом? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2005, 16:06 |
|
||
|
Смена кодировки файла из-под java
|
|||
|---|---|---|---|
|
#18+
flush() ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2005, 16:09 |
|
||
|
Смена кодировки файла из-под java
|
|||
|---|---|---|---|
|
#18+
Примерно так: CLOB clob=null; Writer writer=null; InputStreamReader reader=new InputStreamReader(new BufferedInputStream(new FileInputStream("e:/xml/oa_goms_planeta.xml")),charset); Reader oreader=null; try {clob=CLOB.createTemporary(con,true,CLOB.DURATION_SESSION); char[] cbuf=new char[(int)clob.getChunkSize()]; writer=clob.getCharacterOutputStream(); while ((i=reader.read(cbuf,0,(int)clob.getChunkSize()))!=-1) { writer.write(cbuf,0,i); } } finally { if (writer!=null) writer.close(); if (reader!=null) reader.close(); } oreader=clob.getCharacterStream();i=0; char[] cbuf=new char[(int)clob.getChunkSize()]; cbuf=null;cbuf=new char[(int)clob.length()]; System.out.println("Hey! cbuf from clob is:"+clob.length()+" "+clob.getChunkSize()+" "+clob.getLength()); while ((i=oreader.read(cbuf,0,(int)clob.length()))!=-1) { System.out.println("Number of read symbols is:"+i); System.out.println(cbuf); } К примеру, из 3 м.длины выдает только 2.7м. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2005, 12:43 |
|
||
|
Смена кодировки файла из-под java
|
|||
|---|---|---|---|
|
#18+
У меня вышеприведенный код выдал ровно столько символов, сколько и было в файле. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2005, 14:22 |
|
||
|
Смена кодировки файла из-под java
|
|||
|---|---|---|---|
|
#18+
Есть некоторые догадки: У файла есть метод flush()? И как указать размер файла при инициализации? А если консоль, то можно ли изменить его размер? Но с другой стороны, для любого файла(3-7 Kb) он выдает тоже(т.е.,пропорционально). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2005, 15:23 |
|
||
|
Смена кодировки файла из-под java
|
|||
|---|---|---|---|
|
#18+
flush() - это у потоков. Размер файла - length(). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2005, 15:29 |
|
||
|
Смена кодировки файла из-под java
|
|||
|---|---|---|---|
|
#18+
А ты ее в какой среде разработки прогонял и версии б.д.? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2005, 15:53 |
|
||
|
Смена кодировки файла из-под java
|
|||
|---|---|---|---|
|
#18+
Какие еще есть варианты создания CLOB не через createTemporary()? Да и сильно ли отличается работа с LOBми в 9i(R1,R2) и 10g? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2005, 14:53 |
|
||
|
Смена кодировки файла из-под java
|
|||
|---|---|---|---|
|
#18+
SoberКакие еще есть варианты создания CLOB не через createTemporary()? /topic/195669&pg=1#1667972 Второй способ SoberДа и сильно ли отличается работа с LOBми в 9i(R1,R2) и 10g? С точки зрения базы ИМХО мало, а вот в JDBC от Oracle10 в CLOB\'e, например, реализовали наконец метод setCharacterStream(). В драйверах от 9i ее вызов приводил к исключению, мол, не поддерживается. В JDBC от 10-ки работает, но это от базы не зависит. Может еще чего есть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2005, 15:10 |
|
||
|
Смена кодировки файла из-под java
|
|||
|---|---|---|---|
|
#18+
Понятно. Кстати, на oracle.com: нашел свой же error(когда после вставки пустого lob делал выборку для записи данных): Error Message: "ORA-01002: fetch out of sequence" A JDBC Connection by default has the AutoCommit turned ON. However, to use a SQL that has 'for update' you need to have autoCommit to be turned OFF. Hence, the solution is to set autocommit to false. Ее уже ранее описывал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2005, 16:00 |
|
||
|
|

start [/forum/topic.php?fid=59&startmsg=33166410&tid=2151753]: |
0ms |
get settings: |
10ms |
get forum list: |
21ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
74ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
80ms |
get tp. blocked users: |
2ms |
| others: | 248ms |
| total: | 460ms |

| 0 / 0 |
