|
[Ora] Проблемы с функцией
|
|||
---|---|---|---|
#18+
Код функции create or replace function F_GET_KOSGU(nrn in number) return varchar2 is nKOSGU varchar2(100); begin select distinct m.sagngrp into nKOSGU from T m where m.nagent = nrn; return nKOSGU; exception when no_data_found then return sqlerrm; when others then return sqlerrm; end; Вот так работает: select distinct m.sagngrp from T m where m.nagent = 9487598; А вот так нет: select F_GET_KOSGU(9487598) from dual Почему? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2019, 08:57 |
|
[Ora] Проблемы с функцией
|
|||
---|---|---|---|
#18+
FunnyRabbit А вот так нет: что значит "нет" 1. ошибка выполнения? 2. неожиданный результат? 3. .... ? ну и вывод desc T в любом случае не помешает. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2019, 09:10 |
|
[Ora] Проблемы с функцией
|
|||
---|---|---|---|
#18+
Надфиль, ORA-01403: no data found Это при вызове функции. Сам запрос из функции работает на ура. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2019, 09:15 |
|
[Ora] Проблемы с функцией
|
|||
---|---|---|---|
#18+
Как написали, так и работает. Код: plsql 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.
DESC T ? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2019, 09:27 |
|
[Ora] Проблемы с функцией
|
|||
---|---|---|---|
#18+
dmdmdm, create table T ( dummy VARCHAR2(1), nagent NUMBER(17) not null, company NUMBER(17) not null, crn NUMBER(17) not null, sagngrp VARCHAR2(20) not null, name VARCHAR2(80) not null ); Данные не дам. Корпоративная тайна ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2019, 09:31 |
|
[Ora] Проблемы с функцией
|
|||
---|---|---|---|
#18+
FunnyRabbitПочему? потому ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2019, 09:38 |
|
[Ora] Проблемы с функцией
|
|||
---|---|---|---|
#18+
123йй, Функия возвращает ошибку, а сам запрос ДАННЫЕ ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2019, 09:40 |
|
[Ora] Проблемы с функцией
|
|||
---|---|---|---|
#18+
Лично у меня в Oracle 12.1 данный пример адекватно работает, генерирует исключение только когда реально нет данных по выборке. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2019, 10:05 |
|
[Ora] Проблемы с функцией
|
|||
---|---|---|---|
#18+
123йй, В данной функции перехватывается исключение no_data_found и возвращается строка, а не пробрасывается дальше RAISE, поэтому при вызове из SQL мы увидим информацию об этом исключении в виде строки. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2019, 10:12 |
|
[Ora] Проблемы с функцией
|
|||
---|---|---|---|
#18+
FunnyRabbit, поменяйте when no_data_found then return sqlerrm; на что-то другое и сравните результат напр when no_data_found then return 'Для nagent = '||nrn||' KOSGU не найдено.'); ..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2019, 10:43 |
|
[Ora] Проблемы с функцией
|
|||
---|---|---|---|
#18+
Stax, Выводит автор'Для nagent = 18987324 KOSGU не найдено.' ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2019, 10:46 |
|
[Ora] Проблемы с функцией
|
|||
---|---|---|---|
#18+
FunnyRabbit Stax, Выводит автор'Для nagent = 18987324 KOSGU не найдено.' вероятно в Т нет (недоступна) строки с nagent = 18987324; зы select distinct m.sagngrp from T m where m.nagent = 18987324; ..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2019, 11:00 |
|
[Ora] Проблемы с функцией
|
|||
---|---|---|---|
#18+
FunnyRabbit Почему? а ты уверен что работаешь в одной базе и под одним и тем же пользователем? я имею ввиду при запуске просто запроса и куска с функцией? а то бывало ) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2019, 11:02 |
|
[Ora] Проблемы с функцией
|
|||
---|---|---|---|
#18+
Надфиль, )))))))) Обижаете. Конечно уверен. ) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2019, 11:05 |
|
[Ora] Проблемы с функцией
|
|||
---|---|---|---|
#18+
FunnyRabbit Конечно уверен. ) я бы перепроверил. ну упрости функцию. убери обработку исключений. и просто без переменных сделай запрос. возможно оракал, как иногда бывает, выводит совсем не то сообщение, о котором хочет сказать. напиши вместо distinct m.sagngrp max(m.sagngrp) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2019, 11:18 |
|
[Ora] Проблемы с функцией
|
|||
---|---|---|---|
#18+
[quot] Надфиль#22015121] FunnyRabbit Конечно уверен. ) я бы перепроверил. Проверил ну упрости функцию. убери обработку исключений. и просто без переменных сделай запрос. возможно оракал, как иногда бывает, выводит совсем не то сообщение, о котором хочет сказать. напиши вместо distinct m.sagngrp max(m.sagngrp) Упростил. Поставил max(m.sagngrp). Ничего не выводит. ((((( ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2019, 11:20 |
|
[Ora] Проблемы с функцией
|
|||
---|---|---|---|
#18+
FunnyRabbit, "Ничего", или ошибка? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2019, 11:22 |
|
[Ora] Проблемы с функцией
|
|||
---|---|---|---|
#18+
Надфиль FunnyRabbit, "Ничего", или ошибка? Ничего ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2019, 11:27 |
|
[Ora] Проблемы с функцией
|
|||
---|---|---|---|
#18+
Вы бы привели полный тест кейс, с оформлением тегом src. Укажите версию БД. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2019, 11:32 |
|
[Ora] Проблемы с функцией
|
|||
---|---|---|---|
#18+
K790 Вы бы привели полный тест кейс, с оформлением тегом src. Укажите версию БД. 11.2.0.4.0 Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2019, 11:48 |
|
[Ora] Проблемы с функцией
|
|||
---|---|---|---|
#18+
FunnyRabbit V_UNAGGRSP m а нет ли в этой таблице поля с названием nrn? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2019, 11:54 |
|
[Ora] Проблемы с функцией
|
|||
---|---|---|---|
#18+
FunnyRabbit Код: plsql 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2019, 12:06 |
|
[Ora] Проблемы с функцией
|
|||
---|---|---|---|
#18+
Надфиль, Есть. Но все дело в том, что параметр ОБЯЗАН иметь такое имя. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2019, 13:04 |
|
[Ora] Проблемы с функцией
|
|||
---|---|---|---|
#18+
FunnyRabbit что параметр ОБЯЗАН иметь такое имя. звучит как бред) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2019, 13:06 |
|
|
start [/forum/topic.php?fid=52&msg=39888395&tid=1881867]: |
0ms |
get settings: |
11ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
57ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
64ms |
get tp. blocked users: |
1ms |
others: | 18ms |
total: | 189ms |
0 / 0 |