Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Oracle. Ошибка ORA-06502. Как избавится?


Страницы:   1 2 3

SergP ©   (2006-11-13 13:04:00) 

В чем может быть причина такой ошибки?

ORA-06502: PL/SQL: numeric or value error: character string buffer too small

И где можно увеличить этот character string buffer?


ANB   (2006-11-13 16:13:00) [41]


> Desdechado ©   (13.11.06 16:09) [12]

ЭЭЭЭ. Просто пнули XE она сама все поставила. Не задавая лишних вопросов. Хотя, в принципе, указание размерности никому не мешает, зато код будет работать при любой настройке базы.


k2   (2006-11-13 16:12:00) [42]

Desdechado ©   (13.11.06 16:09) [12]
для nls_length_semantics умолчание изменилось вроде:
в 9-ке-char, в 10-ке-byte


Desdechado   (2006-11-13 16:09:00) [43]

разработчиков [5] - строем за метлами

> Не. Просто константу. Причем на 9-ке с этим проблем не было.
В какой кодировке создавалась БД? В какой кодировке схема? Может, умолчания изменились?


SergP   (2006-11-13 15:24:00) [44]

> [9] SergP ©   (13.11.06 14:01)
>
> увеличил на глаз до 24. Теперь работает.


Блин. Разработчики редиски... Сегодня прислали версию, вместо той что раньше прислали... Посмотрел, а они там уже сами увеличили размеры переменных. А я часа 1,5-2 потратил на поиск этих "багов"....


ANB   (2006-11-13 14:15:00) [45]


> Это если NVARCHAR2 пытаться туда запихнуть. Или нет?

Не. Просто константу. Причем на 9-ке с этим проблем не было.


SergP   (2006-11-13 14:01:00) [46]

> [8] Desdechado ©   (13.11.06 13:52)
> > русские буквы занимают по 2 байта
> Это если NVARCHAR2 пытаться туда запихнуть. Или нет?


там оказалось что не с русскими буквами связано, а с цифрами...
видимо число не влазило в

v_n_reg_sa         VARCHAR2 (20)  := NULL;

увеличил на глаз до 24. Теперь работает.


Desdechado   (2006-11-13 13:52:00) [47]

> русские буквы занимают по 2 байта
Это если NVARCHAR2 пытаться туда запихнуть. Или нет?


SergP   (2006-11-13 13:49:00) [48]

Спасибо... Убрал этот обработчик и нашел где...


ANB   (2006-11-13 13:34:00) [49]


> SergP ©   (13.11.06 13:27) [3]

Хех. Известный косяк. Сохраняй на всех перехватах исключений ее трассировку. так сможешь найти место ошибки. И сделай все варчаровые переменные подлиннее. Оракл сильно от этого не напряжется. Кстати, возможный вариант, из-за чего может появится ошибка :
имеем S varchar2(10). S := 'Вася123456'; На 10-ке (XE) вполне вероятна ошибка невлезания, т.к. русские буквы занимают по 2 байта. Лечится заменой varchar2(10) на varchar2(10 char)


Desdechado   (2006-11-13 13:32:00) [50]

смысл такого
EXCEPTION
    WHEN OTHERS
    THEN
       RAISE;
 END;

обработчика?
без него тебе бы и строку показало


Sergey13   (2006-11-13 13:30:00) [51]

> [3] SergP ©   (13.11.06 13:27)

В PL/SQL Developere например есть отладчик процедур.


SergP   (2006-11-13 13:27:00) [52]

Понял...
Теперь как бы найти в каком месте это происходит, а то процедура большая, а в логе выводится только номер строки где raise стоит...


...
  EXCEPTION
     WHEN OTHERS
     THEN
        RAISE;
  END;


Desdechado   (2006-11-13 13:14:00) [53]

s VARCHAR2(10):='123456789012345';


Sergey13   (2006-11-13 13:10:00) [54]

ORA-06502 PL/SQL: numeric or value errorstring

An arithmetic, numeric, string, conversion, or constraint error occurred. For example, this error occurs if an attempt is made to assign the value NULL to a variable declared NOT NULL, or if an attempt is made to assign an integer larger than 99 to a variable declared NUMBER(2).

Change the data, how it is manipulated, or how it is declared so that values do not violate constraints.


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо