powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Из за чего могла возникать ошибка
7 сообщений из 7, страница 1 из 1
Из за чего могла возникать ошибка
    #32132529
Фотография Tаrantino
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ситуация такая есть две базы тестовая и рабочая, на обоих есть некая табличка и пакет который добавляет запись в эту табличку. Таблица и пакет на обоих базах абсолютно одинаковые, однако при попытке вставке записи на рабочей базе возникала ошибка, при вставке той же самой записи на тестовой ошибки не было.

Ошибка: ORA-06502: PL/SQL: numeric or value error
ORA-06512: at line 1


Опытным путем было выяснено что возникает при передаче текстовой строки, размер поля в таблице 80 символов, сам строка была длинное 50 символов, и как сказал на тестовой все ок, на рабоче ошибка, когда уменьшили строку до 32 симвов, запись вставилась и на рабочей сервер.

Потом изменили входной параметр в пакете, через который эта строка передавалась в таблицу:
было так: PasspIssue in varchar2
стало так: PasspIssue in bufclientattr.attr_value%TYPE

После этого на рабочей базе стало ок, хотелось бы понять из-за чего это произошло, т.к. сам я по Ораклу чайник, да и софт этот был написан до меня, ну и что-бы впередь такое не происходило
...
Рейтинг: 0 / 0
Из за чего могла возникать ошибка
    #32132539
AI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В каких кодировках создавались базы? Похоже, что рабочая - в юникоде, а тестовая в однобайтной кодировке.

Кроме того, посмотрите на номер версии. В 8.0 и 8.1.5/6 были ошибки, которые при длительной работе базы без рестарта приводили к ORA-6502. Лечилось рестартом базы или периодическим alter system flush shared_pool.
...
Рейтинг: 0 / 0
Из за чего могла возникать ошибка
    #32132606
Фотография Tаrantino
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1) Все базы переведены в конечный релиз 8i - Oracle (Home & DBs) 8.1.7.4.1

2) базы создавались как CHARACTER SET CL8MSWIN1251
NATIONAL CHARACTER SET CL8MSWIN1251

3) на клиентах NLS_LANG=AMERICAN_AMERICA.CL8MSWIN1251
...
Рейтинг: 0 / 0
Из за чего могла возникать ошибка
    #32132646
[IPT]-Said
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Чудес не бывает, видимо не абсолютно одинаково ...
...
Рейтинг: 0 / 0
Из за чего могла возникать ошибка
    #32132681
Фотография Tаrantino
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не бывает, но дело вот в чем я сам в Москве, это дело происходит в Питере, раньше был доступ к их тестовой, но сейчас у меня IP поменялся и я даже на тестовую не могу зайти (Питерские админы новый IP пока не зарегестрировали), соотвественно обратился к админам, и они предоставили эту информацию, как говорится "за что купил за то и продал"
...
Рейтинг: 0 / 0
Из за чего могла возникать ошибка
    #32132723
[IPT]-Said
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Так чем же мы можем в таком случае помочь, можем только гадать на кофейной гуще, скажи питерским, чтобы не е...ли мозги, проблема то плевая, пусть тексты присылают обоих пакетов , параметры обеих таблиц...если сами не могут.
...
Рейтинг: 0 / 0
Из за чего могла возникать ошибка
    #32139437
vskv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не знаю, может уже поздно, но у нас был печальный прецедент с одним пакетом, который синхронизировал одну табличку через DB-LINK.
Там была конструкция что-то типа
Код: plaintext
1.
2.
3.
4.
5.
6.
INSERT INTO prefixes 
SELECT ctype, pref_min, pref_max 
FROM BO_prefixes BP
WHERE NOT EXISTS (
  SELECT NULL 
  FROM prefixes RP
  where RP.ctype=BP.ctype AND RP.pref_min=BP.pref_min AND RP.pref_max=BP.pref_max)

BO_prefixes являлся синонимом на таблицу в удалённой схеме.

Так вот, когда одна команда (BO) изменила длину полей pref_min и pref_max до длины соответствующих полей в таблице prefixes, то этот пакет стал падать именно на этом селекте, и именно с ORA-06502: PL/SQL: numeric or value error .
Что самое странное -- эффект потом наблюдался на всех инсталляциях независимо от версии Оракула (т.е. и на 7.3.4, и на 8.1.6, и на 8.1.7). И лечился очень просто -- перекомпиляцией пакета.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Из за чего могла возникать ошибка
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]