Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Ошибка выполнения запроса PLS-307: too many declarations of IS_EQUAL match this call / 6 сообщений из 6, страница 1 из 1
23.06.2016, 13:26:17
    #39260978
x17.mstu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка выполнения запроса PLS-307: too many declarations of IS_EQUAL match this call
Код: sql
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.
 Select 
 dwh_t.PERSON_ID, 
 source_t.PERSON_ID,
 ml_t.dmltype
     , ml_t.PERSON_ID AS PERSON_ID
  From 
 (
 Select
  ml_t.PERSON_ID AS PERSON_ID, 
 MAX(dmltype$$)KEEP(DENSE_RANK LAST ORDER BY sequence$$) dmltype    
  FROM
           NF_FRONT.MLOG$_NF_PERSON_FINANCIAL_@DWH_TO_NF ml_t
 WHERE ml_t.dmltype$$ IN ('U', 'D')
AND ml_t.PERSON_ID='37399516' 
 GROUP BY
         ml_t.PERSON_ID  
         )ml_t
   LEFT JOIN NF_FRONT.NF_PERSON_FINANCIAL_DATA@DWH_TO_NF source_t ON source_t.PERSON_ID = ml_t.PERSON_ID
    LEFT JOIN NF_PERSON_FINANCIAL_DATA dwh_t ON dwh_t.PERSON_ID = source_t.PERSON_ID  
    AND TRUNC(SYSDATE) - 1 BETWEEN dwh_t.DWH_VALID_FROM AND dwh_t.DWH_VALID_TO  
    AND NOT (
                                             1 = 1
                                            AND pkg_common.is_equal(dwh_t.PERSON_ID, source_t.PERSON_ID) = 1
                                            )


-------------------------------------------------------------------------
-- Функция определяет одинаковы ли два числа
-------------------------------------------------------------------------
FUNCTION is_equal
( p_col1 IN NUMBER
, p_col2 IN NUMBER)
RETURN INTEGER
IS
  vr_result INTEGER;
  cn_null CONSTANT NUMBER := 1 / 9999999;
BEGIN
  IF NVL(p_col1, cn_null) = NVL(p_col2, cn_null) THEN
    vr_result := 1;
  ELSE
    vr_result := 0;
  END IF;
  --
  RETURN vr_result;
END is_equal;



При выполнении запроса возникает ошибка PLS-307: too many declarations of IS_EQUAL match this call
Почему?
...
Рейтинг: 0 / 0
23.06.2016, 13:29:44
    #39260980
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка выполнения запроса PLS-307: too many declarations of IS_EQUAL match this call
x17.mstuПри выполнении запроса возникает ошибка PLS-307: too many declarations of IS_EQUAL match this call
Почему?1) Говнокод.
2) В pkg_common есть другая и тоже подходящая is_equal
...
Рейтинг: 0 / 0
23.06.2016, 13:30:47
    #39260982
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка выполнения запроса PLS-307: too many declarations of IS_EQUAL match this call
x17.mstu, функция перегружена (overloaded).
...
Рейтинг: 0 / 0
23.06.2016, 13:37:34
    #39260985
orawish
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка выполнения запроса PLS-307: too many declarations of IS_EQUAL match this call
+ анси говнокод
...
Рейтинг: 0 / 0
23.06.2016, 13:42:19
    #39260990
x17.mstu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка выполнения запроса PLS-307: too many declarations of IS_EQUAL match this call
Подскажите какой функцией заменить или как поправить?
...
Рейтинг: 0 / 0
23.06.2016, 14:03:59
    #39261001
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка выполнения запроса PLS-307: too many declarations of IS_EQUAL match this call
x17.mstuПодскажите какой функцией заменить или как поправить?
Код: plsql
1.
decode(a, b, 0) is not null
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Ошибка выполнения запроса PLS-307: too many declarations of IS_EQUAL match this call / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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