|
|
|
Почему висят открытые курсоры?
|
|||
|---|---|---|---|
|
#18+
Добрый день. Может это и не в этой теме надо поднимать вопрос, но ситуация следующая: Есть функция в ракловом пакете Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. Есть модуль в Delphi, который отвечает за связь с БД и в нем вызов функции (она на всех формах вызывается): Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. При запуске АРМа хожу по формам, делаю разные действия, через какое-то время вылетает ошибка превышения кол-ва открытых курсоров. Возникает вопрос: я ведь закрыл курсор еще в пакете, почему он остается висеть в открытых? Как мне закрыть его? Ни Commit, ни Rollback не помогают. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2020, 10:43 |
|
||
|
Почему висят открытые курсоры?
|
|||
|---|---|---|---|
|
#18+
Это наверное к оракловой ветке Вам нужно, а не в Delphi. Если по существу: нафига Вам эта функция ? Вместо ее использования можно просто написать: WHERE EXISTS(select 1 from mop_rights_ r where uname = user and a_id = p_aid) Ну или если Вам вот прямо нужна функция, то напишите что нибудь типа: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Без всяких курсоров. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2020, 10:53 |
|
||
|
Почему висят открытые курсоры?
|
|||
|---|---|---|---|
|
#18+
Sinemurius, ну вообще-то так и было написано, разница только в том, что обычный select - это неявный курсор. Эта функция вызывается во многих местах и логически завершена. В v$open_cursor вызов представлен как Код: plsql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2020, 11:22 |
|
||
|
Почему висят открытые курсоры?
|
|||
|---|---|---|---|
|
#18+
Леонов Юрий> Может это и не в этой теме надо поднимать вопрос, но ситуация следующая: Леонов Юрий> вылетает ошибка превышения кол-ва открытых курсоров. Леонов Юрий> ... почему он остается висеть в открытых? Леонов Юрий> Как мне закрыть его? Ни Commit, ни Rollback не помогают. Вопрос действительно Оракловый, не клиента. Курсоры кешируются (и привязываются) к сессии, не к транзакции. Читайте про v$open_cursor, dbms_sql.close_cursor и т.д. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2020, 11:36 |
|
||
|
Почему висят открытые курсоры?
|
|||
|---|---|---|---|
|
#18+
Гаджимурадов Рустам Вопрос действительно Оракловый, не клиента. Курсоры кешируются (и привязываются) к сессии, не к транзакции. Можно сам вопрос перенести в другой форум или закрывать этот и создавать новый в Оракловой ветке? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2020, 11:52 |
|
||
|
Почему висят открытые курсоры?
|
|||
|---|---|---|---|
|
#18+
Вопрос можно закрыть, создал такой же на форуме Oracle ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2020, 12:13 |
|
||
|
|

start [/forum/topic.php?fid=58&gotonew=1&tid=2038445]: |
0ms |
get settings: |
10ms |
get forum list: |
22ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
82ms |
get topic data: |
13ms |
get first new msg: |
8ms |
get forum data: |
3ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
| others: | 250ms |
| total: | 444ms |

| 0 / 0 |
