Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Проблемы с кодировками / 4 сообщений из 4, страница 1 из 1
13.02.2013, 12:57
    #38149278
rockclimber
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с кодировками
Сделал выгрузку отчета по нажатию на кнопку, как написано тут .
NLS_CHARACTERSET в базе - CL8MSWIN1251. В настройках приложения апекса язык - русский.
При этом генерируемый csv файл я получаю в кодировке utf8. Пробовал использовать convert - не помогает (да и не должно, на момент вызова convert текст и так находится в кодировке cp1251). Из возможных решений проблемы нашел в интернете только советы изменить настройки веб-сервера. А по-другому никак? Ведь стандартные csv-отчеты из Interactive Report грузятся в нормальной кодировке.
Код для формирования отчета такой:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
begin
OWA_UTIL.mime_header ('text/csv', FALSE);
htp.p('Content-Disposition:attachment;filename="report.csv"');
OWA_UTIL.http_header_close;
  htp.p('№ договора;Фамилия;Имя;Отчество'); 
  for x in (select ...
              from ...
             where ...) loop
   
      htp.p(
            x.agreement_nm || ';' ||
            x.last_name || ';' ||
            x.fst_name || ';' ||
            x.mid_name);
  end loop;
apex_application.g_unrecoverable_error:=true;
exception when others then 
null;
end;
...
Рейтинг: 0 / 0
18.02.2013, 14:45
    #38155703
SvDev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с кодировками
rockclimber,

to_blob, wpg_docload
...
Рейтинг: 0 / 0
18.02.2013, 14:47
    #38155709
SvDev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с кодировками
точнее

to blob, wpg_docload
...
Рейтинг: 0 / 0
19.02.2013, 16:44
    #38157661
rockclimber
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с кодировками
Спасибо, заработало.
Код примерно такой получился:
Код: 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.
31.
32.
33.
34.
35.
36.
declare
  v_crep_text clob;
  v_brep_text blob;
  dest_offset integer := 1;
  src_offset  integer := 1; 
  v_warn      integer;
  l_context   integer := 0;
  err_msg varchar2(4000);
begin
  v_crep_text:= 'заголовок csv отчета' || chr(10); 

  for x in (select ...
              from ...
             where ...) loop
   
      v_crep_text := v_crep_text || ... || chr(10);

  end loop;

  dbms_lob.createtemporary(v_brep_text, TRUE);
  dbms_lob.open(v_brep_text, dbms_lob.lob_readwrite);
   
  dbms_lob.converttoblob(v_brep_text, v_crep_text, DBMS_LOB.LOBMAXSIZE, dest_offset, src_offset, l_context, l_context, v_warn);

  OWA_UTIL.mime_header ('text/html', FALSE, 'cp1251');
  htp.p('Content-Disposition:attachment;filename="report.csv"');
  htp.p('Content-length: ' || dbms_lob.getlength(v_brep_text)); 
  OWA_UTIL.http_header_close;

  wpg_docload.download_file(v_brep_text); 
  
  apex_application.g_unrecoverable_error:=true;
exception 
  when others then 
    null;
end;
...
Рейтинг: 0 / 0
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Проблемы с кодировками / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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