Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Перечитывание курсора / 6 сообщений из 6, страница 1 из 1
20.08.2017, 02:48
    #39507943
cobalt_frog
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перечитывание курсора
Добрый день,

подскажите плз, как происходит перечитка явного курсора в Oracle. Если можно, то ссылку на доки где подробно это описывается.
Например, у нас есть явный курсор с большим объемом данных, мы его открываем и начинаем в цикле работать с данными.
1. Он данные начитывает один раз при открытии?
2. Бывают ли ситуации когда курсор перечитывается?
...
Рейтинг: 0 / 0
20.08.2017, 03:00
    #39507945
Vladimir Filin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перечитывание курсора
cobalt_frog...ссылку на доки где подробно это описывается.

Explicit Cursors
docs.oracle.com/cd/E11882_01/appdev.112/e25519/static.htm#LNPLS99956

Query Result Set Processing With Explicit Cursors, OPEN, FETCH, and CLOSE
http://docs.oracle.com/cd/E11882_01/appdev.112/e25519/static.htm#LNPLS554
...
Рейтинг: 0 / 0
20.08.2017, 16:41
    #39508061
SY
SY
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перечитывание курсора
cobalt_frog1. Он данные начитывает один раз при открытии?


Курсор грубо говоря это закладка в книге - пойнтер. Открыие курсора не читает данных. Данные читает fetch.

cobalt_frog2. Бывают ли ситуации когда курсор перечитывается?

OCI поддерживает scrollable cursors которые могт читать как вперед как и назад. А так - нет.

SY.
...
Рейтинг: 0 / 0
21.08.2017, 08:34
    #39508228
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перечитывание курсора
SYcobalt_frog1. Он данные начитывает один раз при открытии?


Открыие курсора не читает данных.

SY.

имхо
c for update "прочитает/залочит", а фетч как бы второй раз их прочтет

.....
stax
...
Рейтинг: 0 / 0
21.08.2017, 14:51
    #39508428
SY
SY
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перечитывание курсора
Staxc for update "прочитает/залочит", а фетч как бы второй раз их прочтет


Всё это "под ковром". Для приложения данные будут прочитаны только через fetch. Да и "прочитает/залочит" не есть чтение данных select list а чтение данных where clause чтоба определить "нашa" строка или нет.

SY.
...
Рейтинг: 0 / 0
21.08.2017, 15:13
    #39508445
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перечитывание курсора
SYStaxc for update "прочитает/залочит", а фетч как бы второй раз их прочтет


Всё это "под ковром". Для приложения данные будут прочитаны только через fetch. Да и "прочитает/залочит" не есть чтение данных select list а чтение данных where clause чтоба определить "нашa" строка или нет.

SY.

мне кажется что оракля "читает" по where clause два раза (раз для наложения блокировки, второй для фетч),
иначе для СИЛЬНО недетерминированого условия он бы нв выдавал не залоченные,
и наоборот - заблокированные не включал в фетч

то не так важно, но "раз в 100лет" может и выстрелить

для меня важно что open (не фетч) блокирует, и может выполнятся "не многвенно"

формально, данные читает фетч

.....
stax
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Перечитывание курсора / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]