powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / htp.p and ORA-06512
13 сообщений из 13, страница 1 из 1
htp.p and ORA-06512
    #38025149
Alex Zhulin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!
Есть сервер Oracle 11G
Пытаюсь выполнить процедуру

procedure test_ppo is
begin
htp.p('<?xml version = "1.0" encoding = "Windows-1251"?>');
htp.p('<report>');
htp.p('<answer>');
for i in 1 .. 100 loop
htp.p('<test>'||' test '||i||'</test>');
end loop;
htp.p('</answer>');
htp.p('</report>');
end;

Проблем нет
Но если вставляю кириллицу

procedure test_ppo is
begin
htp.p('<?xml version = "1.0" encoding = "Windows-1251"?>');
htp.p('<report>');
htp.p('<answer>');
for i in 1 .. 100 loop
htp.p('<test>'||' Тест '||i||'</test>');
end loop;
htp.p('</answer>');
htp.p('</report>');
end;

То при вызове получаю ошибку

ORA-06502: PL/SQL: numeric or value error: character string buffer too small<br>
ORA-06512: at "SYS.HTP", line 1550<br>
ORA-06512: at "SYS.HTP", line 1735<br>
ORA-06512: at "EXCELLENT.TEST_FUNCS", line 10<br>

Переполнение буфера происходит при использовании кириллицы.
Подскажите, пжл., почему?
...
Рейтинг: 0 / 0
htp.p and ORA-06512
    #38026227
dba123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex Zhulin,

Вы в плюсе ошибку получаете или в браузере?
...
Рейтинг: 0 / 0
htp.p and ORA-06512
    #38026305
init.ora
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
htp.p and ORA-06512
    #38026470
select lengthb('Test'), lengthb('Тест')
from dual
...
Рейтинг: 0 / 0
htp.p and ORA-06512
    #38026586
непонятно
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alex Zhulin,

авторORA-06512: at "EXCELLENT. TEST_FUNCS ", line 10<br>
и
авторprocedure test_ppo
может не там смотрим
...
Рейтинг: 0 / 0
htp.p and ORA-06512
    #38026794
Alex Zhulin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
dba123Alex Zhulin,

Вы в плюсе ошибку получаете или в браузере?

В браузере ошибка.

Байт Байтовичselect lengthb('Test'), lengthb('Тест')
from dual

Вижу, что второе выражение получается в два раза больше.
Предполагаю, что из-за этого:

SELECT * FROM nls_database_parameters
WHERE parameter like 'NLS%CHARACTERSET';

PARAMETER VALUE
NLS_CHARACTERSET AL32UTF8
NLS_NCHAR_CHARACTERSET AL16UTF16

Нашел похожее решение проблемы вот здесь http://www.donotcommit.net/?p=158

Сделал alter system set NLS_LENGTH_SEMANTIC='CHAR';
Но после рестарта базы NLS_LENGTH_SEMANTIC вернулся обратно в BYTE

Как сделать параметр NLS_LENGTH_SEMANTIC = CHAR?
И в том ли я направлении двигаюсь?
...
Рейтинг: 0 / 0
htp.p and ORA-06512
    #38026832
Alex Zhulin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
init.ora,

Спасибо за ссылки.
Первую видел, но, честно говоря не нашел там решения своей проблемы. Точнее вообще не увидел решения проблемы (может невнимательно читал?)
Во второй ссылке автор хвастается, что написал свой аналог htp.p (боюсь, что это мне не подойдет :-))
...
Рейтинг: 0 / 0
htp.p and ORA-06512
    #38026838
А не проще ли просто глянуть EXCELLENT.TEST_FUNCS и там поправить цифорку в длине или же заменить на varchar2(* char)?
...
Рейтинг: 0 / 0
htp.p and ORA-06512
    #38026865
dba123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex Zhulin,

а PlsqlNLSLanguage настроен как в dads.readme сказано
...
Рейтинг: 0 / 0
htp.p and ORA-06512
    #38026890
Alex Zhulin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Байт БайтовичА не проще ли просто глянуть EXCELLENT.TEST_FUNCS и там поправить цифорку в длине или же заменить на varchar2(* char)?

Так проблема не в EXCELLENT.TEST_FUNCS, а в переполнении буфера в htp.p
...
Рейтинг: 0 / 0
htp.p and ORA-06512
    #38026895
Alex Zhulin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
dba123Alex Zhulin,

а PlsqlNLSLanguage настроен как в dads.readme сказано

Sorry, из меня администратор еще тот... Можете поподробнее сказать, где смотреть?
...
Рейтинг: 0 / 0
htp.p and ORA-06512
    #38029440
Alex Zhulin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Возможно я поступил "не спортивно" ;-), но я победил эту фигню, отредактировав пакет htp

Изменил длину переменной в заголовке пакета

--type htbuf_arr is table of varchar2(256) index by binary_integer;
type htbuf_arr is table of varchar2(512) index by binary_integer;

И длину переменной в теле пакета

--htcurline varchar2(256) := ''; -- htbuf_arr element size
htcurline varchar2(512) := ''; -- htbuf_arr element size
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
htp.p and ORA-06512
    #39649982
AlexVin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Doc ID 760084.1
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
begin
owa.num_cgi_vars := 0;
HTP.HTBUF_LEN := 128;
htp.init;
htp.htmlopen;
htp.p(rpad('Ф',500,'Ы'));
htp.htmlclose;
owa_util.showpage;
end;
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / htp.p and ORA-06512
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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