|
|
|
EXCEPTION Not Found для REF CURSORа
|
|||
|---|---|---|---|
|
#18+
Добрый день ! Понадобилась необхлдимость для одного из веб сервисов использовать REF CURSOR. Возвращается множество значений. И тут выясняется, что исключительная ситуация NOT FOUND для REF CURSORа - не катит. BEGIN -- XXX - это REF CURSOR open XXX for select r.pole as pole from ......... длинющий запрос EXCEPTION WHEN NO_DATA_FOUND THEN open XXX for SELECT 'Dates not Found!' as pole FROM DUAL; END; Не возвращается ничего. Кто-нибудь знает как в отношении REF CURSORа вернуть то, что мне надо, если данных нет ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2018, 10:26 |
|
||
|
EXCEPTION Not Found для REF CURSORа
|
|||
|---|---|---|---|
|
#18+
chernvjNOT FOUND для REF CURSORа - не катит. Катит, как атрибут курсора после fetch. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2018, 10:42 |
|
||
|
EXCEPTION Not Found для REF CURSORа
|
|||
|---|---|---|---|
|
#18+
chernvj, обрабатывается примерно так Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. или Вам надо сгенерить исключение? ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2018, 10:45 |
|
||
|
EXCEPTION Not Found для REF CURSORа
|
|||
|---|---|---|---|
|
#18+
> или Вам надо сгенерить исключение? Да, мне надо вернуть назад сообщение "Данные не найдены" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2018, 11:03 |
|
||
|
EXCEPTION Not Found для REF CURSORа
|
|||
|---|---|---|---|
|
#18+
chernvj надо вернуть назад сообщение "Данные не найдены"Правильный джоин на дуал. Но подход заведомо ущербный, интерпретировать стандартный результат потребителем универсальнее и дешевле. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2018, 11:12 |
|
||
|
EXCEPTION Not Found для REF CURSORа
|
|||
|---|---|---|---|
|
#18+
chernvj, Код: 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. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2018, 11:47 |
|
||
|
EXCEPTION Not Found для REF CURSORа
|
|||
|---|---|---|---|
|
#18+
Stax Код: plsql 1. 2. Делать нечего? =NO_DATA_FOUND ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2018, 11:51 |
|
||
|
EXCEPTION Not Found для REF CURSORа
|
|||
|---|---|---|---|
|
#18+
> ERROR at line 1: > ORA-01403: no data found > ORA-06512: at line 9 он то, конечно, хорошо, но не совсем то что надо. Я не ошибку должен вернуть, а вместо отсутствующего значения - строку: "Данных нет" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2018, 15:25 |
|
||
|
EXCEPTION Not Found для REF CURSORа
|
|||
|---|---|---|---|
|
#18+
Ситуацию NO_DATA_FOUND обрабатывает тот кто читает данные. Зaбудь про NO_DATA_FOUND на минутку. Что делает веб сервис с курсором XXX? Читает данные, не так-ли? И что происходит когда очередной fetch выдает NO_DATA_FOUND? Код понимает что все - бльше данных нет. Так что мешает коду вести, например, счет прочитанных строк и если при возникновении NO_DATA_FOUND счет ноль то присвоись переменной куда читается pole значение 'Dates not Found!'? А потуги с 'Dates not Found!' и открытием курсора уместны ну разве тоько если код по каким-то причинам (например код от вендора) трогать нельзя. Тогда приходится ваять что-то типа: Код: 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. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2018, 17:07 |
|
||
|
EXCEPTION Not Found для REF CURSORа
|
|||
|---|---|---|---|
|
#18+
>SQL> BEGIN > 2 open :XXX for > 3 select * from test_table > 4 union all > 5 select 'No Data Found!' > 6 from dual > 7 where 0 = (select count(*) from test_table); > 8 END; > 9 / Прикольно. Буду перевартвать всю полученную информацию. Спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2018, 17:29 |
|
||
|
|

start [/forum/topic.php?fid=52&fpage=101&tid=1883447]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
27ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
| others: | 205ms |
| total: | 317ms |

| 0 / 0 |
