Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / ora-06502 - при вызове функции из пакета. Спасает только перекомпиляция пакета :((( / 18 сообщений из 18, страница 1 из 1
11.08.2004, 15:38
    #32644912
Alex_D
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ora-06502 - при вызове функции из пакета. Спасает только перекомпиляция пакета :(((
Никто не сталкивался с такой бедой?
Работают пользователи все хорошо. Примерно раз в два дня одна и таже функция пакета отказывается работать. При вызове из клиентского приложения выдает:
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
11.08.2004, 15:42
    #32644925
Andrew Campball
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ora-06502 - при вызове функции из пакета. Спасает только перекомпиляция пакета :(((
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
11.08.2004, 16:09
    #32644999
Alex_D
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ora-06502 - при вызове функции из пакета. Спасает только перекомпиляция пакета :(((
to Andrew Campball
Спасибо конечно за цитирование документации.
Но это мы и сами знаем. Смотрите что происходит.

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

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

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

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

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

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

Имею на форме в 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
11.08.2004, 16:44
    #32645116
Andrew Campball
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ora-06502 - при вызове функции из пакета. Спасает только перекомпиляция пакета :(((
А типы параметров процедуры в пакете ?
...
Рейтинг: 0 / 0
11.08.2004, 17:06
    #32645183
Alex_D
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ora-06502 - при вызове функции из пакета. Спасает только перекомпиляция пакета :(((
Код: 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
11.08.2004, 17:40
    #32645291
Andrew Campball
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ora-06502 - при вызове функции из пакета. Спасает только перекомпиляция пакета :(((
Вы типы параметров сами задавали или автоматом подставилось ?

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

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

Интересно чем дело кончилось
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
12.12.2013, 10:01
    #38498020
йййй
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ora-06502 - при вызове функции из пакета. Спасает только перекомпиляция пакета :(((
Сейчас с той же проблемой столкнулись. :(. При вызове процедуры из формса возникает ошибка ORA-06502. Ошибка на проседуре выбора данных. До этого момента в пакет вообще не заходим.
...
Рейтинг: 0 / 0
17.12.2013, 18:58
    #38504151
ЕвгенийВ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ora-06502 - при вызове функции из пакета. Спасает только перекомпиляция пакета :(((
Тоже столкнулся.
Решилось, когда поставил параметр с 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
20.12.2013, 08:44
    #38507413
SerjantGB
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ora-06502 - при вызове функции из пакета. Спасает только перекомпиляция пакета :(((
У меня тоже проблема...
Использую функцию nvl
пробую проверить значение столбца на наличие NULL в результате выкидывает такую ошибку
...
Рейтинг: 0 / 0
24.10.2014, 11:09
    #38786426
ЕвгенийВ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ora-06502 - при вызове функции из пакета. Спасает только перекомпиляция пакета :(((
Еще, может кому пригодиться, если функция возвращает varchar2, то нужно явно указывать размер (size), иначе валится с такой же ошибкой.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
10.05.2017, 18:19
    #39450944
ora-06502 - при вызове функции из пакета. Спасает только перекомпиляция пакета :(((
ЕвгенийВЕще, может кому пригодиться, если функция возвращает varchar2, то нужно явно указывать размер (size), иначе валится с такой же ошибкой.
C# VS 2015 Oracle.ManagedDataAccess

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

Спасибо!

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


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