powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Проблемы с кодировками
4 сообщений из 4, страница 1 из 1
Проблемы с кодировками
    #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
Проблемы с кодировками
    #38155703
SvDev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rockclimber,

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

to blob, wpg_docload
...
Рейтинг: 0 / 0
Проблемы с кодировками
    #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
4 сообщений из 4, страница 1 из 1
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Проблемы с кодировками
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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