|
|
|
Как прокрутить реф-курсор в цикле ?
|
|||
|---|---|---|---|
|
#18+
Вопрос знающим людям: Как прокрутить реф-курсор в цикле, если неизвестна его структура ? то есть open ref_c; loop fetch ref_c into ... -- куда ??? как объявить переменную для рекорда этого -- курсора ??? Кол-во столбцов и их типы неизвестны, -- (реф-курсор приходит из другой процедуры PL/SQL) exit when ref_c%notfound; .............. .............. end loop; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2005, 16:27 |
|
||
|
Как прокрутить реф-курсор в цикле ?
|
|||
|---|---|---|---|
|
#18+
ВопросикВопрос знающим людям: Как прокрутить реф-курсор в цикле, если неизвестна его структура ? то есть open ref_c; loop fetch ref_c into ... -- куда ??? как объявить переменную для рекорда этого -- курсора ??? Кол-во столбцов и их типы неизвестны, -- (реф-курсор приходит из другой процедуры PL/SQL) exit when ref_c%notfound; .............. .............. end loop; Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2005, 16:28 |
|
||
|
Как прокрутить реф-курсор в цикле ?
|
|||
|---|---|---|---|
|
#18+
for i in ref_c loop ... end loop; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2005, 16:31 |
|
||
|
Как прокрутить реф-курсор в цикле ?
|
|||
|---|---|---|---|
|
#18+
не, ребята, че-то не так. declare ref_c sys_refcursor; ref_c_rec ref_c%rowtype; -- уже здесь начинается ругань begin open ref_c; loop fetch ref_c into ref_c_rec; exit when ref_c%notfound; null; end loop; end; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2005, 16:39 |
|
||
|
Как прокрутить реф-курсор в цикле ?
|
|||
|---|---|---|---|
|
#18+
Вопросикне, ребята, че-то не так. держи друг Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2005, 16:50 |
|
||
|
Как прокрутить реф-курсор в цикле ?
|
|||
|---|---|---|---|
|
#18+
Спасибо, друг ! А если приблизиться к суровой реальности ? procedure DoSomething (xCur in sys_refcursor -- курсор приходит черт-те -- откуда и неизвестно какой --структуры ) is begin c2 c1%rowtype; -- на что эту конструкцию поменять ??? begin open c1; loop fetch c1 into c2; exit when c1%notfound; null; end loop; close c1; end; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2005, 16:55 |
|
||
|
Как прокрутить реф-курсор в цикле ?
|
|||
|---|---|---|---|
|
#18+
ВопросикА если приблизиться к суровой реальности ? а структура курсора меняется? Или он стабилен все же? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2005, 17:06 |
|
||
|
Как прокрутить реф-курсор в цикле ?
|
|||
|---|---|---|---|
|
#18+
ВопросикСпасибо, друг ! А если приблизиться к суровой реальности ? procedure DoSomething (xCur in sys_refcursor -- курсор приходит черт-те -- откуда и неизвестно какой --структуры ) is begin c2 c1%rowtype; -- на что эту конструкцию поменять ??? begin open c1; loop fetch c1 into c2; exit when c1%notfound; null; end loop; close c1; end; Прокрутить курсор неизвестной структуры ты сможешь всегда, а вот извлечь отдельные данные из с2 - нет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2005, 17:17 |
|
||
|
Как прокрутить реф-курсор в цикле ?
|
|||
|---|---|---|---|
|
#18+
alex-ls ВопросикА если приблизиться к суровой реальности ? а структура курсора меняется? Или он стабилен все же? К сожалению, меняется.... Реф-курсор формируется программно и кол-во колонок в нем зависит от данных. может быть так наименование банк 1 банк2 ........банкN Бумага 20 30 650 кол-во банков меняется в соответсвии с кучей параметров и сколько их будет, заранее не определить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2005, 17:17 |
|
||
|
Как прокрутить реф-курсор в цикле ?
|
|||
|---|---|---|---|
|
#18+
Вопросик alex-ls ВопросикА если приблизиться к суровой реальности ? а структура курсора меняется? Или он стабилен все же? К сожалению, меняется.... мда... тогда не знаю если бы не менялся можно было бы объявить курсор в пакете и по нему стряпать переменные. А так... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2005, 17:20 |
|
||
|
Как прокрутить реф-курсор в цикле ?
|
|||
|---|---|---|---|
|
#18+
brant2000 ВопросикСпасибо, друг ! А если приблизиться к суровой реальности ? procedure DoSomething (xCur in sys_refcursor -- курсор приходит черт-те -- откуда и неизвестно какой --структуры ) is begin c2 c1%rowtype; -- на что эту конструкцию поменять ??? begin open c1; loop fetch c1 into c2; exit when c1%notfound; null; end loop; close c1; end; Прокрутить курсор неизвестной структуры ты сможешь всегда, а вот извлечь отдельные данные из с2 - нет это ирония ? вместо c2 конечно же должен быть xCur, сорри. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2005, 17:31 |
|
||
|
Как прокрутить реф-курсор в цикле ?
|
|||
|---|---|---|---|
|
#18+
блин опять тороплюсь ... XCur вместо с1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2005, 17:33 |
|
||
|
Как прокрутить реф-курсор в цикле ?
|
|||
|---|---|---|---|
|
#18+
Если знаешь Java, то можешь передать SYS_REFCURSOR в метод Java-класса, а там уж делать с ним что угодно. Тем более при наличии такой вещи как ResultSetMetaData. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2005, 17:37 |
|
||
|
Как прокрутить реф-курсор в цикле ?
|
|||
|---|---|---|---|
|
#18+
Вопросикблин опять тороплюсь ... XCur вместо с1. Как не называй получить данные из курсора неизвестной структуры в PL/SQL нельзя, только количество записей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2005, 17:42 |
|
||
|
Как прокрутить реф-курсор в цикле ?
|
|||
|---|---|---|---|
|
#18+
brant2000 Вопросикблин опять тороплюсь ... XCur вместо с1. Как не называй получить данные из курсора неизвестной структуры в PL/SQL нельзя, только количество записей. Очень даже можно Код: 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. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2005, 19:03 |
|
||
|
Как прокрутить реф-курсор в цикле ?
|
|||
|---|---|---|---|
|
#18+
Anatalex brant2000 Как не называй получить данные из курсора неизвестной структуры в PL/SQL нельзя, только количество записей. Очень даже можно Код: plaintext 1. 2. Anatalex, таки шо же Вы хотели продемонстрировать данным примером? Где тут неопределенная структура? Аналогичный пример легко строится и с ref cursor, если программист заранее знает что в этом курсоре придет (количество полей и типы данных). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2005, 20:17 |
|
||
|
Как прокрутить реф-курсор в цикле ?
|
|||
|---|---|---|---|
|
#18+
ВопросикК сожалению, меняется.... Реф-курсор формируется программно и кол-во колонок в нем зависит от данных. может быть так наименование банк 1 банк2 ........банкN Бумага 20 30 650 кол-во банков меняется в соответсвии с кучей параметров и сколько их будет, заранее не определить.О, так Ваш курсор имеет вполне предсказуемую структуру? Тогда можно попробовать методом "научного втыка": - насоздавать N рекордов с различным числом полей - пытаться по очереди профетчить в каждый из рекордов, пока не попадешь в нужный ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2005, 20:44 |
|
||
|
Как прокрутить реф-курсор в цикле ?
|
|||
|---|---|---|---|
|
#18+
andrey_anonymous ВопросикК сожалению, меняется.... Реф-курсор формируется программно и кол-во колонок в нем зависит от данных. может быть так наименование банк 1 банк2 ........банкN Бумага 20 30 650 кол-во банков меняется в соответсвии с кучей параметров и сколько их будет, заранее не определить.О, так Ваш курсор имеет вполне предсказуемую структуру? Тогда можно попробовать методом "научного втыка": - насоздавать N рекордов с различным числом полей - пытаться по очереди профетчить в каждый из рекордов, пока не попадешь в нужный В dbms_sql достаточно средств, что бы определить структуру реф курсора, количество и типы полей. Остальное дело техники. Я привел лишь один из примеров использования ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2005, 10:38 |
|
||
|
Как прокрутить реф-курсор в цикле ?
|
|||
|---|---|---|---|
|
#18+
AnatalexВ dbms_sql достаточно средств, что бы определить структуру реф курсора , количество и типы полей.Можно с этого места поподробнее? Примерчик какой... Обращаю особое внимание: речь идет именно о REF CURSOR. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2005, 11:08 |
|
||
|
Как прокрутить реф-курсор в цикле ?
|
|||
|---|---|---|---|
|
#18+
AnatalexВ dbms_sql достаточно средств, что бы определить структуру реф курсораdbms_sql не поддерживает ref cursor. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2005, 11:20 |
|
||
|
Как прокрутить реф-курсор в цикле ?
|
|||
|---|---|---|---|
|
#18+
andrey_anonymous AnatalexВ dbms_sql достаточно средств, что бы определить структуру реф курсора , количество и типы полей.Можно с этого места поподробнее? Примерчик какой... Обращаю особое внимание: речь идет именно о REF CURSOR. Похоже этот товарисч снова путает теплое с мягким... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2005, 11:49 |
|
||
|
Как прокрутить реф-курсор в цикле ?
|
|||
|---|---|---|---|
|
#18+
Если можно передать в процедуру инфу о структуре данных в курсоре то можно динамическим SQL разобрать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2005, 12:12 |
|
||
|
Как прокрутить реф-курсор в цикле ?
|
|||
|---|---|---|---|
|
#18+
Alex623Если можно передать в процедуру инфу о структуре данных в курсоре то можно динамическим SQL разобратьВ таком случае и ref cursor как бы нафиг не нужен ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2005, 12:14 |
|
||
|
Как прокрутить реф-курсор в цикле ?
|
|||
|---|---|---|---|
|
#18+
andrey_anonymous ВопросикК сожалению, меняется.... Реф-курсор формируется программно и кол-во колонок в нем зависит от данных. может быть так наименование банк 1 банк2 ........банкN Бумага 20 30 650 кол-во банков меняется в соответсвии с кучей параметров и сколько их будет, заранее не определить.О, так Ваш курсор имеет вполне предсказуемую структуру? Тогда можно попробовать методом "научного втыка": - насоздавать N рекордов с различным числом полей - пытаться по очереди профетчить в каждый из рекордов, пока не попадешь в нужный ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2005, 13:09 |
|
||
|
Как прокрутить реф-курсор в цикле ?
|
|||
|---|---|---|---|
|
#18+
brant2000 andrey_anonymous ВопросикК сожалению, меняется.... Реф-курсор формируется программно и кол-во колонок в нем зависит от данных. может быть так наименование банк 1 банк2 ........банкN Бумага 20 30 650 кол-во банков меняется в соответсвии с кучей параметров и сколько их будет, заранее не определить.О, так Ваш курсор имеет вполне предсказуемую структуру? Тогда можно попробовать методом "научного втыка": - насоздавать N рекордов с различным числом полей - пытаться по очереди профетчить в каждый из рекордов, пока не попадешь в нужный Передавай не сам реф курсор, а номер курсора определенный с помощью того же dbms_sql и будет тебе счастье ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2005, 13:31 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=33399930&tid=1884060]: |
0ms |
get settings: |
6ms |
get forum list: |
21ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
195ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
| others: | 210ms |
| total: | 489ms |

| 0 / 0 |
