powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / CLOB UTF8 -> WIN1251
10 сообщений из 35, страница 2 из 2
CLOB UTF8 -> WIN1251
    #36746709
max13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
wildwindА я где-то писал про яваскрипт? App. server на чем у вас?
Что имеется в виду под "на чем"? Если язык - то PL/SQL.
wildwindЯ сильно сомневаюсь, что вы рассмотрели другие варианты, не то что попробовали. Протокол обмена с Европой - секретный? Наверняка обычный веб-сервис.
Понимаете, дается DLL-ка, есть инструкция как запустить в ней функцию, которая что-то возвращает. Каким образом она это делает и где берет данные вообще неважно, но написана эта DLL-ка частной организацией для получения доступа к своей БД в европе, не думаю что там используется какой-то всем известный протокол. Главное как-то запустить и получить результат. А это работа с COM-объектом и ничего более.
...
Рейтинг: 0 / 0
CLOB UTF8 -> WIN1251
    #36746724
wildwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
max13Если язык - то PL/SQL. в смысле mod_plsql обрабатывает все запросы с клиентов?
...
Рейтинг: 0 / 0
CLOB UTF8 -> WIN1251
    #36746741
max13wildwindА я где-то писал про яваскрипт? App. server на чем у вас?
Что имеется в виду под "на чем"? Если язык - то PL/SQL.
wildwindЯ сильно сомневаюсь, что вы рассмотрели другие варианты, не то что попробовали. Протокол обмена с Европой - секретный? Наверняка обычный веб-сервис.
Понимаете, дается DLL-ка, есть инструкция как запустить в ней функцию, которая что-то возвращает. Каким образом она это делает и где берет данные вообще неважно, но написана эта DLL-ка частной организацией для получения доступа к своей БД в европе, не думаю что там используется какой-то всем известный протокол. Главное как-то запустить и получить результат. А это работа с COM-объектом и ничего более.

Много лишних букв и ненужных подробностей. Сохраните в блоб или клоб результат и работайте с ним уже, вот и потерялся в постановке ваш объект.
...
Рейтинг: 0 / 0
CLOB UTF8 -> WIN1251
    #36747124
chameleon82
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
я так понял, что это чтото вроде веб-сервиса? по крайней мере данные приходят в виде xml? тогда в чем вопрос? :) данные и должны быть в utf-8, эти данные ваш обработчик и должен обрабатывать в utf-8, для отображения результат конвертировать в необходимую вам кодировку. Имхо, если приходится такие данные конвертировать - гдето ошибка в бизнес-процессах, или в реализации. Вероятно, Вам следует обратить внимание на встроенные в пл/скл операторы, специально предназначенные для работы с деревьями (xml парсеры).
...
Рейтинг: 0 / 0
CLOB UTF8 -> WIN1251
    #36747261
Max13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кто-то немного знакомый с дельфи
Много лишних букв и ненужных подробностей. Сохраните в блоб или клоб результат и работайте с ним уже, вот и потерялся в постановке ваш объект.
По другому если не объяснить народу почему я так делаю, вот и пришлось на 3-й раз все подробно расписать.
через блоб уже реализовал, все работает.
wildwindв смысле mod_plsql обрабатывает все запросы с клиентов?
да, все напрямую с pl/sql как-то, наверно тот самый mod_plsql. Не я честно говоря настраивал. Но точно явы там нет.
wildwindВероятно, Вам следует обратить внимание на встроенные в пл/скл операторы, специально предназначенные для работы с деревьями (xml парсеры).
именно так и делаю, и я писать, что пытался через dbms_xmlparser что-то сделать с кодировкой, но ничего там не нашел. А без конвертации он выводит ошибки. В принципе это и логично. В чем база настроена, в том он и пытается обработать...
...
Рейтинг: 0 / 0
CLOB UTF8 -> WIN1251
    #36747701
chameleon82
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как-то писал соап-клиента для парсинга валют с сайта ЦБ-РФ. Вырезал наиболее ценное, покопайся, может поможет.
Код: 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.
      pieces            UTL_HTTP.html_pieces;
      proxy_auth        VARCHAR2 ( 255 )       := proxy;
      l_clob            CLOB;
      l_parser          xmlparser.parser;
      xmldoc            xmldom.domdocument;
      valutenodeslist   xmldom.domnodelist;
      vl                xmldom.domelement;
      dn                xmldom.domnode;
BEGIN

      UTL_HTTP.set_body_charset ('windows-1251'); //  CHANGE TO UTF_8
      BEGIN
         pieces :=
            UTL_HTTP.request_pieces ('http://webservice/blablabla',  2000  );

         FOR i IN  1  .. pieces.COUNT
         LOOP
            l_clob := l_clob || pieces (i);
         END LOOP;
     END;

  l_parser := xmlparser.newparser;
  xmlparser.parseclob (l_parser, l_clob);

  valutenodeslist :=  xmldom.getelementsbytagname (xmldoc, 'ValuteCursOnDate');

  FOR i IN  0  .. xmldom.getlength (valutenodeslist) -  1 
  LOOP
            dn := xmldom.item (valutenodeslist, i);
            vl := xmldom.makeelement (dn);

    blablabla := xmldom.getnodevalue (xmldom.getfirstchild (xmldom.item (xmldom.getchildrenbytagname (vl, 'Vname'  ),   0   ) )  );
  END LOOP;
...
Рейтинг: 0 / 0
CLOB UTF8 -> WIN1251
    #36747936
max13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
chameleon82Как-то писал соап-клиента для парсинга валют с сайта ЦБ-РФ. Вырезал наиболее ценное, покопайся, может поможет.

Ага, спасибо. С курсами ЦБ знаком, но это не тот случай, к сожалению. Технология запуска другая.
...
Рейтинг: 0 / 0
CLOB UTF8 -> WIN1251
    #37033526
Dev.l
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Elicmax13как dbms_lob'у можно сказать что у меня в CLOB сидит UTF8 при том, что NLS_CHARACTERSET = CL8MSWIN1251.

Код: plaintext
1.
   blob_csid   =>NLS_CHARSET_ID ('UTF8'),



Спасибо!

У меня ситуация диаметрально противоположная:
база в AL32UTF8,
в blob поле текст сохраняется через toad/plsql developer c кодировкой CL8MSWIN1251.

Когда читал blob поле при помощи dbms_lob.converttoclob то база думала что данные в AL32UTF8,
и выдавала ??? вместо русского текста.

Явно указав при помощи NLS_CHARSET_ID,
что в blob-e лежит текст в CL8MSWIN1251 помогло решить проблему:

Код: plaintext
1.
   blob_csid   =>NLS_CHARSET_ID ('CL8MSWIN1251'),
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
CLOB UTF8 -> WIN1251
    #39577354
Elicmax13как dbms_lob\'у можно сказать что у меня в CLOB сидит UTF8 при том, что NLS_CHARACTERSET = CL8MSWIN1251.10g
Код: plsql
\r\ndeclare\r\n  c clob;\r\n  b blob;\r\n  c2 clob;\r\n  l_dest_offset   integer := 1;\r\n  l_source_offset integer := 1;\r\n  l_lang_context  integer := DBMS_LOB.DEFAULT_LANG_CTX;\r\n  l_warning       integer := DBMS_LOB.WARN_INCONVERTIBLE_CHAR;\r\nBEGIN\r\n  c := convert(\'Привет!\', \'utf8\');\r\n  dbms_output.put_line(c);\r\n  DBMS_LOB.CREATETEMPORARY(b, TRUE);\r\n  DBMS_LOB.CONVERTTOBLOB\r\n  (\r\n   dest_lob    =>b,\r\n   src_clob    =>c,\r\n   amount      =>DBMS_LOB.LOBMAXSIZE,\r\n   dest_offset =>l_dest_offset,\r\n   src_offset  =>l_source_offset,\r\n   blob_csid   =>0,\r\n   lang_context=>l_lang_context,\r\n   warning     =>l_warning\r\n  );\r\n  l_dest_offset   := 1;\r\n  l_source_offset := 1;\r\n  l_lang_context  := DBMS_LOB.DEFAULT_LANG_CTX;\r\n  DBMS_LOB.CREATETEMPORARY(c2, TRUE);\r\n  DBMS_LOB.CONVERTTOCLOB\r\n  (\r\n   dest_lob    =>c2,\r\n   src_blob    =>b,\r\n   amount      =>DBMS_LOB.LOBMAXSIZE,\r\n   dest_offset =>l_dest_offset,\r\n   src_offset  =>l_source_offset,\r\n   blob_csid   =>NLS_CHARSET_ID (\'UTF8\'),\r\n   lang_context=>l_lang_context,\r\n   warning     =>l_warning\r\n  );\r\n  c := c2;\r\n  dbms_output.put_line(c);\r\nend;\r\n/\r\n\r\nР_С_РёР_РчС\'!\r\nПривет!\r\n\r\nPL/SQL procedure successfully completed.\r\n
\r\nПри многобайтном NLS_CHARACTERSET фокус, насколько я понимаю, не удастся.

скажите, а почему Элик в .CONVERTTOBLOB передал сначала параметр blob_csid =>0, а в только затем в DBMS_LOB.CONVERTTOCLOB - нужную кодировку blob_csid =>NLS_CHARSET_ID (\'UTF8\') ? почему сразу не передавать ту кодировку, в которую хотим перекодировать ?
...
Рейтинг: 0 / 0
CLOB UTF8 -> WIN1251
    #39577567
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Elic показывает, как можно работать с кодировками.
Ньюанс - показывает "для тех, кто понял".
Ибо много оставлено за кадром.
Хинт: пререквизитом для правильного понимания этого примера является вдумчивое прочтение Globalization Support Guide.
Критерий осознания: суметь ответить на вопрос "а в какой, собственно, кодировке результат скрипта получен клиентом?"
...
Рейтинг: 0 / 0
10 сообщений из 35, страница 2 из 2
Форумы / Oracle [игнор отключен] [закрыт для гостей] / CLOB UTF8 -> WIN1251
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]