Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
cool_dude Участник - экстремал
Вступление в Клуб: 05.02.2013
|
Пт Дек 01, 2017 11:00  Крякозабры |
|
Полезность: Нет оценки
|
Здравствуйте, уважаемые форумчане.
Создал операцию для выгрузки данных из таблицы в txt документ. Данные выгружаются, файл создается, но после выгрузки в файле, ФИО пользователей выходят крякообразными символами. т.е. если например ФИО - Иванов Иван Иванович, то на файле выгружается как +ванов _ван °ванович и т.п. Как решить эту проблему? Ниже приведен кусок кода:
f_handler integer;
str_ext varchar2(3);
str_txt varchar2(200);
type Q_1 is
select u(u.[NAME] : fsc
,u.[USERNAME] : cur
,u.[DEPART].[CODE] :bsc
)
in ::[USER]
where u.[DEPART].[code] like '001%';
cur1 Q_1;
Procedure export_data(P_EXT varchar2(3), df_name varchar2(50))
is
Begin
--debug_pipe(&METHOD$||': Процедура обработки запроса с использованием статического курсора', 0);
cur1.open;
case P_EXT of
:'txt': f_handler := stdio.open(src_path,df_name,'W');
End;
--debug_pipe(TB$||'...Цикл по курсору, чтение данных', 0);
for c in 1..100000
Loop
cur1.fetch;
If cur1.found Then
If P_EXT = 'txt' Then
str_txt := cur1.fsc
||' | '||cur1.cur
||' | '||cur1.bsc;
--debug_pipe (cur1.fsc);
stdio.PUT_LINE(f_handler, str_txt, false, stdio.WINTEXT);
End If;
End Loop;
case P_EXT of
:'txt': stdio.close(f_handler);
End;
cur1.close;
Exception When OTHERS Then
--debug_pipe('Ошибка работы с курсором', 0);
If cur1.isopen Then
cur1.close;
End If;
End;
С латинскими буквами проблем нет. Они выгружаются как есть. |
|
 |
Volod Эксперт
Вступление в Клуб: 19.09.2007
|
Пт Дек 01, 2017 12:39   |
|
Полезность: Нет оценки
|
1. На форуме есть тег форматирования кода
2. что значит "на файле выгружается"? Чем смотрите текстовый файл?
3. stdio.PUT_LINE(f_handler, str_txt, false, stdio.WINTEXT); - значит win кодировка |
|
 |
cool_dude Участник - экстремал
Вступление в Клуб: 05.02.2013
|
Пт Дек 01, 2017 12:52   |
|
Полезность: Нет оценки
|
Volod пишет: | 1. На форуме есть тег форматирования кода
2. что значит "на файле выгружается"? Чем смотрите текстовый файл?
3. stdio.PUT_LINE(f_handler, str_txt, false, stdio.WINTEXT); - значит win кодировка |
1. Вы не могли бы ссылку отправить?
2. Выгруженный файл смотрю через FAR в WIN кодировке. Через блокнот тоже самое.
3. Да, WIN кодировка. Попробовал в DOS кодировке. Проблема та же осталась + нормальные слова тоже превратились в крякозябры  |
|
 |
cool_dude Участник - экстремал
Вступление в Клуб: 05.02.2013
|
Пт Дек 01, 2017 13:08   |
|
Полезность: Нет оценки
|
Нашел решение.
вместо
stdio.PUT_LINE(f_handler, str_txt, false, stdio.WINTEXT);
поставил
вот это stdio.put_line(f_handler, str_txt, true, null, stdio.WINTEXT);
Забыл прописать один параметр.
Спасибо за отклик. |
|
 |
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
|
|