powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / ora-06502 - при вызове функции из пакета. Спасает только перекомпиляция пакета :(((
18 сообщений из 18, страница 1 из 1
ora-06502 - при вызове функции из пакета. Спасает только перекомпиляция пакета :(((
    #32644912
Alex_D
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Никто не сталкивался с такой бедой?
Работают пользователи все хорошо. Примерно раз в два дня одна и таже функция пакета отказывается работать. При вызове из клиентского приложения выдает:
ORA-06502 PL/SQL: numeric or value error string.

После перекомпиляции пакета ошибка исчезает до следущего раза.

Для справки:
WIN 2000 Server;
Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.1.0 - Production;

Клиент: Delphi 6, ODAC 3.5.
...
Рейтинг: 0 / 0
ora-06502 - при вызове функции из пакета. Спасает только перекомпиляция пакета :(((
    #32644925
Фотография Andrew Campball
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cause: 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).

Action: Change the data, how it is manipulated, or how it is declared so that values do not violate constraints.
...
Рейтинг: 0 / 0
ora-06502 - при вызове функции из пакета. Спасает только перекомпиляция пакета :(((
    #32644999
Alex_D
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
to Andrew Campball
Спасибо конечно за цитирование документации.
Но это мы и сами знаем. Смотрите что происходит.

Много раз вызываем функцию пакета все работает как часы.
Потом в один прекрасный момент вызываем эту же функцию пакета получаем:

ORA-06502 PL/SQL: numeric or value error string.

Дальше пока не перекомпилируем пакет, продолжаем получать такую же ошибку.

Перекомпилировали пакет с данной функции. Опять можем много раз вызывать данную функцию и все будет хорошо. Она будет работать.

Но наступит момент Х и опять получим
ORA-06502 PL/SQL: numeric or value error string.

Что это за момент X - я пока выяснить не смог, вот и спрашиваю может кто уже сталкивался с подобным.
...
Рейтинг: 0 / 0
ora-06502 - при вызове функции из пакета. Спасает только перекомпиляция пакета :(((
    #32645020
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Например сохранилась какая то дрянь в переменных пакета и ГАДИТ.
А при перекомпиляции переинициализируется.
Копайте код. Явно где-то строку в число преобразуете.
...
Рейтинг: 0 / 0
ora-06502 - при вызове функции из пакета. Спасает только перекомпиляция пакета :(((
    #32645035
Фотография Andrew Campball
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
добавте в тело пакета отладочную информацию, которую сохраняете в фале, потом будет намного легче анализировать.
У вас какие то данные неправильно конвертируются.
...
Рейтинг: 0 / 0
ora-06502 - при вызове функции из пакета. Спасает только перекомпиляция пакета :(((
    #32645093
Alex_D
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да похоже не в пакете дело ... Так как ругается не на пакет а на вызов процедуры ..

Имею на форме в Delphi: OraStoredProc2 со следущими свойствами
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
 object OraStoredProc2: TOraStoredProc
    StoredProcName = 'BALANCES.AUTOWIRING'
    SQL.Strings = (
      'begin'

        '  BALANCES.AUTOWIRING(:PINVC_INVC_ID, :PBDDT_BDDT_ID, :PRSOR_RSO' +
        'R_ID, :PPROR_PROR_ID, :PAVRP_AVRP_ID, :PCNVR_CNVR_ID, :PCAAC_DEB' +
        'ET_ID, :PCAAC_KREDIT_ID);'
      'end;')
    Left =  400 
    Top =  184 
    ParamData = <
      item
        DataType = ftFloat
        Name = 'PINVC_INVC_ID'
        ParamType = ptInput
      end
      item
        DataType = ftFloat
        Name = 'PBDDT_BDDT_ID'
        ParamType = ptInput
      end
      item
        DataType = ftFloat
        Name = 'PRSOR_RSOR_ID'
        ParamType = ptInput
      end
      item
        DataType = ftFloat
        Name = 'PPROR_PROR_ID'
        ParamType = ptInput
      end
      item
        DataType = ftFloat
        Name = 'PAVRP_AVRP_ID'
        ParamType = ptInput
      end
      item
        DataType = ftFloat
        Name = 'PCNVR_CNVR_ID'
        ParamType = ptInput
      end
      item
        DataType = ftInteger
        Name = 'PCAAC_DEBET_ID'
        ParamType = ptInput
      end
      item
        DataType = ftInteger
        Name = 'PCAAC_KREDIT_ID'
        ParamType = ptInput
      end>
  end

И вот такую ошибку:

Код: plaintext
1.
2.
ORA- 06502  PL/SQL: numeric or value error string: Character to number conversion error
ORA- 06502  at line  2 
...
Рейтинг: 0 / 0
ora-06502 - при вызове функции из пакета. Спасает только перекомпиляция пакета :(((
    #32645116
Фотография Andrew Campball
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А типы параметров процедуры в пакете ?
...
Рейтинг: 0 / 0
ora-06502 - при вызове функции из пакета. Спасает только перекомпиляция пакета :(((
    #32645183
Alex_D
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
procedure AutoWiring(
                     pInvc_Invc_Id number( 10 ),
                     pBddt_Bddt_Id number( 10 ),
                     pRsor_Rsor_Id number( 10 ),
                     pPror_Pror_Id number( 10 ),
                     pAvrp_Avrp_Id number( 10 ),
                     pCnvr_Cnvr_Id number( 10 ),
                     pcaac_debet_id number( 5 ),
                     pcaac_kredit_id number( 5 ));
...
Рейтинг: 0 / 0
ora-06502 - при вызове функции из пакета. Спасает только перекомпиляция пакета :(((
    #32645291
Фотография Andrew Campball
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы типы параметров сами задавали или автоматом подставилось ?

Может для PCAAC_DEBET_ID и PCAAC_KREDIT_ID выставить тоже Float ?
...
Рейтинг: 0 / 0
ora-06502 - при вызове функции из пакета. Спасает только перекомпиляция пакета :(((
    #32645316
Alex_D
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Типы параметров автоматом проставились.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
ora-06502 - при вызове функции из пакета. Спасает только перекомпиляция пакета :(((
    #37730754
ГраББер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alex_D,
Тот момент Х наступает тзза формата переменной.Те есть вы задали Number(3) а в процессе оброботки это переменное получает неверный формат как 3,2 или 12345 итд
.Как вы и говорили он будет работать но будет в определенный момент когда ему присвоят неправилное значение даст ошибку
...
Рейтинг: 0 / 0
ora-06502 - при вызове функции из пакета. Спасает только перекомпиляция пакета :(((
    #37730824
N.Ivankin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ГраББер,

некропостер. Восьмилетний тред из мёртвых поднял
...
Рейтинг: 0 / 0
ora-06502 - при вызове функции из пакета. Спасает только перекомпиляция пакета :(((
    #37730851
ALocky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
N.Ivankin,

Интересно чем дело кончилось
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
ora-06502 - при вызове функции из пакета. Спасает только перекомпиляция пакета :(((
    #38498020
йййй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сейчас с той же проблемой столкнулись. :(. При вызове процедуры из формса возникает ошибка ORA-06502. Ошибка на проседуре выбора данных. До этого момента в пакет вообще не заходим.
...
Рейтинг: 0 / 0
ora-06502 - при вызове функции из пакета. Спасает только перекомпиляция пакета :(((
    #38504151
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тоже столкнулся.
Решилось, когда поставил параметр с ParameterDirection.ReturnValue на первое место.
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
   public override IEnumerable<System.Data.Common.DbParameter> IsExistsParameters
        {
            get
            {
                yield return new OracleParameter("retValue", OracleDbType.Decimal, ParameterDirection.ReturnValue);
                yield return new OracleParameter("p_STEKS_CODE", OracleDbType.Decimal, STEKS_CODE, System.Data.ParameterDirection.Input);
                yield return new OracleParameter("p_FULL_NAME", OracleDbType.Varchar2, FULL_NAME, System.Data.ParameterDirection.Input);                
            }
        }


Был на последнем, вылетала ошибка.
...
Рейтинг: 0 / 0
ora-06502 - при вызове функции из пакета. Спасает только перекомпиляция пакета :(((
    #38507413
SerjantGB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня тоже проблема...
Использую функцию nvl
пробую проверить значение столбца на наличие NULL в результате выкидывает такую ошибку
...
Рейтинг: 0 / 0
ora-06502 - при вызове функции из пакета. Спасает только перекомпиляция пакета :(((
    #38786426
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще, может кому пригодиться, если функция возвращает varchar2, то нужно явно указывать размер (size), иначе валится с такой же ошибкой.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
ora-06502 - при вызове функции из пакета. Спасает только перекомпиляция пакета :(((
    #39450944
ЕвгенийВЕще, может кому пригодиться, если функция возвращает varchar2, то нужно явно указывать размер (size), иначе валится с такой же ошибкой.
C# VS 2015 Oracle.ManagedDataAccess

Была та же фигня,
переставил выходные параметры в начало и явно указал размер того параметра, который Varchar2
и всё заработало!

Спасибо!

Если бы не твой пост, то я не знаю, сколько бы я ещё гадал над этой ошибкой.
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / ora-06502 - при вызове функции из пакета. Спасает только перекомпиляция пакета :(((
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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