|
|
|
htp.p and ORA-06512
|
|||
|---|---|---|---|
|
#18+
Добрый день! Есть сервер 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> Переполнение буфера происходит при использовании кириллицы. Подскажите, пжл., почему? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2012, 20:10 |
|
||
|
htp.p and ORA-06512
|
|||
|---|---|---|---|
|
#18+
Alex Zhulin, Вы в плюсе ошибку получаете или в браузере? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2012, 09:10 |
|
||
|
htp.p and ORA-06512
|
|||
|---|---|---|---|
|
#18+
вот тут похожие проблемы: http://muzso.hu/2012/09/05/the-htp.p-procedure-in-oracle-rdbms-does-not-work-well-with-multibyte-charactersets http://www.orafaq.com/forum/t/101943/2/ наверно стоит посмотреть ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2012, 10:17 |
|
||
|
htp.p and ORA-06512
|
|||
|---|---|---|---|
|
#18+
select lengthb('Test'), lengthb('Тест') from dual ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2012, 11:49 |
|
||
|
htp.p and ORA-06512
|
|||
|---|---|---|---|
|
#18+
Alex Zhulin, авторORA-06512: at "EXCELLENT. TEST_FUNCS ", line 10<br> и авторprocedure test_ppo может не там смотрим ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2012, 12:49 |
|
||
|
htp.p and ORA-06512
|
|||
|---|---|---|---|
|
#18+
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? И в том ли я направлении двигаюсь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2012, 14:20 |
|
||
|
htp.p and ORA-06512
|
|||
|---|---|---|---|
|
#18+
init.ora, Спасибо за ссылки. Первую видел, но, честно говоря не нашел там решения своей проблемы. Точнее вообще не увидел решения проблемы (может невнимательно читал?) Во второй ссылке автор хвастается, что написал свой аналог htp.p (боюсь, что это мне не подойдет :-)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2012, 14:37 |
|
||
|
htp.p and ORA-06512
|
|||
|---|---|---|---|
|
#18+
А не проще ли просто глянуть EXCELLENT.TEST_FUNCS и там поправить цифорку в длине или же заменить на varchar2(* char)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2012, 14:39 |
|
||
|
htp.p and ORA-06512
|
|||
|---|---|---|---|
|
#18+
Alex Zhulin, а PlsqlNLSLanguage настроен как в dads.readme сказано ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2012, 14:52 |
|
||
|
htp.p and ORA-06512
|
|||
|---|---|---|---|
|
#18+
Байт БайтовичА не проще ли просто глянуть EXCELLENT.TEST_FUNCS и там поправить цифорку в длине или же заменить на varchar2(* char)? Так проблема не в EXCELLENT.TEST_FUNCS, а в переполнении буфера в htp.p ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2012, 15:03 |
|
||
|
htp.p and ORA-06512
|
|||
|---|---|---|---|
|
#18+
dba123Alex Zhulin, а PlsqlNLSLanguage настроен как в dads.readme сказано Sorry, из меня администратор еще тот... Можете поподробнее сказать, где смотреть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2012, 15:04 |
|
||
|
htp.p and ORA-06512
|
|||
|---|---|---|---|
|
#18+
Возможно я поступил "не спортивно" ;-), но я победил эту фигню, отредактировав пакет 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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2012, 22:48 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=38026227&tid=1883942]: |
0ms |
get settings: |
8ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
188ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
| others: | 219ms |
| total: | 503ms |

| 0 / 0 |
