Ошибка: буфер символьных строк слишком маленький

Etwas

Новичок
Ошибка: буфер символьных строк слишком маленький

В чем может быть ошибка?
Вызываю функцию, при в одном случае работает, в другом выдает ошибку

ociexecute() [function.ociexecute]: OCIStmtExecute: ORA-06502: PL/SQL: : буфер символьных строк слишком маленький ошибка числа или значения ORA-06512: на line 1

в PL/SQL тестил функцию, работает отлично.

вот он сама:

declare v_time date;
begin v_time:=to_date:)v_ts,'YYYY-MM-DD-HH24-MI-SS');
:return := paket.fn_cash_save(
v_kazna_kassa_id => :v_kazna_kassa_id,
v_cash_date => :v_cash_date,
v_summa => :v_summa,
v_remarks => :v_remarks,
v_user_id => :v_user_id,
v_ts => v_time,
v_object_id => :v_object_id,
v_errormsg => :v_errormsg);
:v_ts := to_char(v_time,'YYYY-MM-DD-HH24-MI-SS');
end;

если v_object_id передавать не 0, то все нормально, но иногда нужно, чтобы отправить именно 0.
 

Falc

Новичок
такая ошибка возникает когда в переменной определенного размера пытаются присвоить значение превышающее размер этой переменой.

Например вот так:

Код:
Declare
  x Varchar(10);
Begin
  x := 'asdfasdfasdfasdf';
End;
 

Etwas

Новичок
Автор оригинала: Falc
такая ошибка возникает когда в переменной определенного размера пытаются присвоить значение превышающее размер этой переменой.

Например вот так:

Код:
Declare
  x Varchar(10);
Begin
  x := 'asdfasdfasdfasdf';
End;
это да, но записываю туда такие параметры
v_kazna_kassa_id=1
v_cash_date=30.07.2007
v_summa=15000
v_remarks=
v_user_id=3777
v_ts=30.07.2007
v_object_id=0
v_errormsg=0
 

Falc

Новичок
Etwas
Вообще для нахождения ошибки в PL/SQL'е, оракл сообщает ORA-06512. В твоем случае это "line 1".
Вывод из этого можно сделать следующий:
Либо ты посылаешь PL/SQL блок одной строкой и тогда можно его разбить на строки и понять в которой строке ошибка.
Либо код ошибки был приведен неверный.
 

Etwas

Новичок
Falc
в том-то и дело, когда в несколько строк, пишет ошибку с пустым символом... я в прошлом посту описывал. Вот и приходится все одним блоком ему подавать
 

Falc

Новичок
Автор оригинала: Etwas
в том-то и дело, когда в несколько строк, пишет ошибку с пустым символом... я в прошлом посту описывал. Вот и приходится все одним блоком ему подавать
Да... Тяжелый случай.



Может быть проблема в оси_бинд, ты указываешь не достаточную длину параметра?
 

asaka

Новичок
Вообщет, лучш еписать все в одну строку.
покажи объявление функции fn_cash_save пакета paket.fn_cash_save.

если ты говоришь, что она валится на v_object_id=0, то (если тип параметра number) мож те по умлочанию задать в 0.
 
Сверху