ORA-06502 и select max(char(25))

Петров Андрей
Дата: 14.11.2008 12:35:42
Товарисчи :-) вот такая конструкция:

Declare
fNumberx Char(25);
Begin
    Select Max(Numberx)
    Into   fNumberx
    From  Table    
    Where  TabIndicator = 'C' And Product = 13 And
    Method = 'sequential' And Manual = 0;
End;

дает ошибку ORA-06502: PL/SQL: Numeric or value error: Character string buffer too small.
Поле Table.NumberX того же типа: Char(25);
В чем ошибка?

При этом вот такая конструкция работает:

Declare
fNumberx Char(25);
Begin
    Select Trim(Max(Numberx))
    Into   fNumberx
    From  Table    
    Where  TabIndicator = 'C' And Product = 13 And
    Method = 'sequential' And Manual = 0;
End;

Как победить без добавления Трима? Как то оно не логично...
Oracle 9.2
NLS_LANG = AL32UTF8
NLS_LENGTH_SEMANTICS = CHAR
orawish
Дата: 14.11.2008 12:42:27
завязывали бы вы с чарами.
а так.. - desc таблицы вашей давайте и nls_length_semantics (иниторашный)
Sheffsky
Дата: 14.11.2008 13:19:38
Вряд ли, конечно, но может так поможет?

Declare
fNumberx Table.Numberx%Type;
Begin
    Select Trim(Max(Numberx))
    Into   fNumberx
    From  Table    
    Where  TabIndicator = 'C' And Product = 13 And
    Method = 'sequential' And Manual = 0;
End;