|
Курсор
|
|||
---|---|---|---|
#18+
Доброе время суток! Создал функцию, которая клиенту возвращает курсор. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Это упрощенный вид, но работающий. Теперь надо пройтись по всем записям, некоторые изменить, некоторые удалить, _НО_ именно в курсоре, а не БД и результирующий курсор отдать клиенту. Направьте на путь истинный! Закрадывается сомнение, что это вообще не так делается... P.S. И еще хотелось бы узнать как эту функцию из SQL*Plus вызвать. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2002, 13:22 |
|
Курсор
|
|||
---|---|---|---|
#18+
Используй UPDATE SET ..... WHERE CURRENT OF и DELETE WHERE CURRENT OF. Только курсор должен быть обьявлен как CURSOR .... IS SELECT .... FOR UPDATE. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2002, 13:28 |
|
Курсор
|
|||
---|---|---|---|
#18+
Кстати если ты хочешь использовать функцию в select - не получится, потомучто как я понимаю изменения всё равно сядут в базу. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2002, 13:49 |
|
Курсор
|
|||
---|---|---|---|
#18+
-Ничего не понимаю! А Вы, шеф? -Аналогично! (с)Колобки Объявляю курсор Код: plaintext 1. 2. 3. 4. 5.
Открываю его, фетчу, затем DELETE WHERE CURRENT OF cur... И Oracle лихо сносит этот самый CURRENT OF!!! А у меня сложилось впечатление, что Вы говорите именно о возможности изменения курсора, без изменения базы. Помимо этого как мне возвратить этот курсор? RETURN cur не идет ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2002, 14:30 |
|
Курсор
|
|||
---|---|---|---|
#18+
Предлагаю использовать следующее(уже не в первый раз). Замечу только, что сам курсор не модифицируется, а заполняется обьектная таблица. Пример естественно не на твоей таблице, я думаю ты сам сможешь переделать. Код: 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2002, 15:19 |
|
Курсор
|
|||
---|---|---|---|
#18+
Курсор из процедуры можно вернуть, объявив предварительно тип ref cursor. Посмотри вот в этом \r топике ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2002, 15:51 |
|
Курсор
|
|||
---|---|---|---|
#18+
Спасибо, так и буду делать. Или через temporary table. P.S Предлагаю использовать следующее(уже не в первый раз). Видел. :) Но там был выбор между объектами и курсором. Я выбрал курсор и промахнулся. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2002, 15:53 |
|
Курсор
|
|||
---|---|---|---|
#18+
"Курсор из процедуры можно вернуть, объявив предварительно тип ref cursor. Посмотри вот в этом " Я тоже посмотрел, а как вернуть курсор посредством select? Тоже через CAST? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2002, 16:15 |
|
Курсор
|
|||
---|---|---|---|
#18+
Вот есть такая штука, Код: 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. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166. 167. 168. 169. 170. 171. 172. 173. 174. 175. 176. 177. 178. 179. 180. 181. 182. 183. 184. 185. 186. 187. 188. 189. 190. 191. 192. 193. 194. 195. 196. 197. 198. 199. 200. 201. 202. 203. 204. 205. 206. 207. 208. 209. 210. 211. 212. 213. 214. 215. 216. 217. 218. 219. 220. 221. 222. 223. 224. 225. 226. 227. 228. 229. 230. 231. 232. 233. 234. 235. 236. 237. 238. 239. 240. 241. 242. 243. 244. 245. 246. 247. 248. 249. 250. 251. 252. 253. 254. 255. 256. 257. 258. 259. 260.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2002, 16:25 |
|
Курсор
|
|||
---|---|---|---|
#18+
>Я тоже посмотрел, а как вернуть курсор посредством >select? Тоже через CAST? нет, просто выполняешь функцию, объявив предварительно на клиенте переменную типа refcursor (конечно в SQL*Plus это проще). Код: plaintext 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2002, 16:27 |
|
Курсор
|
|||
---|---|---|---|
#18+
Я понял что в select нельзя ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2002, 16:51 |
|
|
start [/forum/topic.php?fid=52&fpage=2830&tid=1992630]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
32ms |
get topic data: |
8ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
2ms |
others: | 14ms |
total: | 136ms |
0 / 0 |