|
Форум
|
cink |
14.09.04, 23:30 |
|
Реферат документа |
|
Необходимо выделение реферата из достаточно большого текстового документа. При использовании функции <rco_context.ThemeSummary> Oracle выдает ошибку "ORA-06502: PL/SQL: numeric or value error: character string buffer too small ORA-06512: at line 1". А попытка прочитать BLOB'ы из таблицы c рефератами <rco$setting_name$s> ничего не дает. Расскажите пожалуйста как добраться до реферата.
|
|
|
cink |
14.09.04, 23:38 |
|
re: Реферат документа |
|
Правка: функция - rco_context.ThemeSummary, таблица - rco$setting_name$s. |
|
|
Алексей Дмитровский |
15.09.04, 13:47 |
|
re: re: Реферат документа |
|
Добрый день! Какой размер переменной, которой присваивается значение summary? Попробуйте varchar2(32767). |
|
|
cink |
15.09.04, 18:35 |
|
Не получается |
|
declare temp varchar2(32767); begin select rco_context.themeSummary('rel_set', '47472', NULL, 'N', 300) into temp from dual; end; Выдается та же ошибка. Интересно то, что с маленькими документами (3-4 Кб) ThemeSummary справляется. При возрастании размера до 20 Кб вылезает ошибка.
|
|
|
Плешко Владимир |
15.09.04, 18:51 |
|
re: Не получается |
|
Попробуйте
declare temp varchar2(32767); begin temp := rco_context.themeSummary('rel_set', '47472', NULL, 'N', 300); end;
|
|
|
cink |
15.09.04, 20:17 |
|
Получилось |
|
Спасибо! А Вы не могли бы рассказать почему с select'ом не работало? |
|
|
Плешко Владимир |
15.09.04, 20:41 |
|
re: Получилось |
|
В таблице максимальный размер varchar2 равен 4000. Соответственно создать rowset можно с таким же ограничением.
Интересно, что такая ошибка возникает не всегда. Например:
declare temp varchar2(32767); begin temp := LPAD(' ', 32767); dbms_output.put_line(length(temp)); select LPAD(' ', 32767) into temp from dual; dbms_output.put_line(length(temp)); end; ------ 32767 4000
Т.е. функция LPAD "знает" контекст, в котором она вызвана. Но результат все равно отличен от ожидаемого. |
|
|
|
|
|
| |