Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Вернуть на клиент большой CLOB  [new]
friz777
Member

Откуда: Город-герой Минск
Сообщений: 248
Есть функция которая формирует clob, надо его вытянуть на клиент. Но вылетает ошибка : буфер символьных строк слишком маленький
Как побороть?
1 окт 11, 17:24    [11368270]     Ответить | Цитировать Сообщить модератору
 Re: Вернуть на клиент большой CLOB  [new]
Alexander Ryndin
Member

Откуда:
Сообщений: 4917
Блог
friz777
Есть функция которая формирует clob, надо его вытянуть на клиент. Но вылетает ошибка : буфер символьных строк слишком маленький
Как побороть?
Что такое "клиент"? Что за функция?
1 окт 11, 17:38    [11368296]     Ответить | Цитировать Сообщить модератору
 Re: Вернуть на клиент большой CLOB  [new]
friz777
Member

Откуда: Город-герой Минск
Сообщений: 248
Есть клиенская прога написанная на делфи. Есть процедура на pl\sql которая формирует clob. В проге на делфи вызывается эта функция и вылетает ошибка: буфер символьных строк слишком маленький
1 окт 11, 17:55    [11368328]     Ответить | Цитировать Сообщить модератору
 Re: Вернуть на клиент большой CLOB  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 51772

friz777
В проге на делфи вызывается эта функция и вылетает ошибка: буфер символьных строк слишком
маленький

Вот найди место откуда эта ошибка вылетает и поймёшь как её обойти.

Posted via ActualForum NNTP Server 1.4

1 окт 11, 18:11    [11368372]     Ответить | Цитировать Сообщить модератору
 Re: Вернуть на клиент большой CLOB  [new]
friz777
Member

Откуда: Город-герой Минск
Сообщений: 248
обошел тем что порезал на части и частями вытащил на клиент... этот способ мне не нравиться... думаю есть что-то лучшее
1 окт 11, 18:17    [11368387]     Ответить | Цитировать Сообщить модератору
 Re: Вернуть на клиент большой CLOB  [new]
andreymx
Member

Откуда: Запорожье
Сообщений: 54382
friz777,

что-то вроде TBlobField.SaveToFile
1 окт 11, 19:42    [11368653]     Ответить | Цитировать Сообщить модератору
 Re: Вернуть на клиент большой CLOB  [new]
0024
Guest
friz777
Есть функция которая формирует clob, надо его вытянуть на клиент. Но вылетает ошибка : буфер символьных строк слишком маленький
Как побороть?

Если ошибка действительно ораколовая, то выкладывай код функции.
2 окт 11, 05:56    [11369390]     Ответить | Цитировать Сообщить модератору
 Re: Вернуть на клиент большой CLOB  [new]
friz777
Member

Откуда: Город-герой Минск
Сообщений: 248
Функция до ужаса проста, что-то типа:
Function GetMes(pInput in varchar2) return clob
is
rez clob;
begin
--
--Тут идет формирование результата
--


return rez;
end;

Причем ошибка вылетает только если вызываешь хранимку из делфи, если запускаешь в оракле (в toad) то все проходит без проблем..
3 окт 11, 12:50    [11373216]     Ответить | Цитировать Сообщить модератору
 Re: Вернуть на клиент большой CLOB  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 51772

friz777
ошибка вылетает только если вызываешь хранимку из делфи

Значит проблема - в Дельфи. Там её и ищи.

Posted via ActualForum NNTP Server 1.4

3 окт 11, 13:06    [11373350]     Ответить | Цитировать Сообщить модератору
 Re: Вернуть на клиент большой CLOB  [new]
0024
Guest
friz777
Функция до ужаса проста, что-то типа:
Function GetMes(pInput in varchar2) return clob
is
rez clob;
begin
--
--Тут идет формирование результата
--


return rez;
end;

Причем ошибка вылетает только если вызываешь хранимку из делфи, если запускаешь в оракле (в toad) то все проходит без проблем..

Ты думаешь меня интересовала сигнатура функции?
3 окт 11, 13:54    [11373842]     Ответить | Цитировать Сообщить модератору
 Re: Вернуть на клиент большой CLOB  [new]
env
Member

Откуда: Россия, Москва
Сообщений: 6727
friz777,

Уверен, что вызываешь с одним значением входного параметра в жабе и самописке?
Если ошибка оракловая, то у неё есть код и (т.к. процедура) номер строки, где она возникла.
3 окт 11, 13:54    [11373851]     Ответить | Цитировать Сообщить модератору
 Re: Вернуть на клиент большой CLOB  [new]
env
Member

Откуда: Россия, Москва
Сообщений: 6727
friz777,

И ещё, сколько в процедуре dbms_output'а?
3 окт 11, 13:55    [11373859]     Ответить | Цитировать Сообщить модератору
 Re: Вернуть на клиент большой CLOB  [new]
friz777
Member

Откуда: Город-герой Минск
Сообщений: 248
Входные параметры ввожу одинаковые.
Ошибка такая: Exception class EOraError with message 'ORA-06502: PL/SQL: : буфер символьных строк слишком маленький ошибка числа или значения
ORA-06512: на line 2
В line 2 вот это:
--1 select SEQ_SESSION_ID.nextval 
--2 into SessionID
--3 from dual;
--4 bts_util.LogTable('Получаем session_id '||SessionID); -- самописанная функция логирования(автономная транзакция инсертит в таблицу)

dbms_output нету
3 окт 11, 14:10    [11374000]     Ответить | Цитировать Сообщить модератору
 Re: Вернуть на клиент большой CLOB  [new]
friz777
Member

Откуда: Город-герой Минск
Сообщений: 248
Причем функция логирования показывает что ошибка вылетает именно на return
3 окт 11, 14:12    [11374010]     Ответить | Цитировать Сообщить модератору
 Re: Вернуть на клиент большой CLOB  [new]
env
Member

Откуда: Россия, Москва
Сообщений: 6727
friz777,

показывай весь код
3 окт 11, 14:14    [11374042]     Ответить | Цитировать Сообщить модератору
 Re: Вернуть на клиент большой CLOB  [new]
0024
Guest
friz777
Причем функция логирования показывает что ошибка вылетает именно на return

Ну вот и разберись к какому типу кастится клоб при передаче в Delphi.
3 окт 11, 14:15    [11374052]     Ответить | Цитировать Сообщить модератору
 Re: Вернуть на клиент большой CLOB  [new]
friz777
Member

Откуда: Город-герой Минск
Сообщений: 248
В общем нашел ошибку, действительно делфа кастила клоб к стрингу а не к клобу. И самым правильным ответом в данном случаем был бы: RTFM :)
Спасибо народ
3 окт 11, 15:06    [11374609]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить