|
многократное использование курсора
|
|||
---|---|---|---|
#18+
Проблема заключается в следующем: В хранимой процедуре необходимо многократно выбирать данные из курсора. В документации прочитал, что возможности перейти на начало курсора нет. Для повторнрго использования курсора предлагается его открывать вновь. Проблемма заключается в том, что цикл выполняется всего один раз. После первого закрытия курсора происходит выход из процедуры. Подскажите, что я делаю не правильно. Привожу условный фрагмент текста из процедуры : CURSOR curTest is (SELECT ID_TESTNAME FROM SD_TEST WHERE NAME='xxx'); idName Number; BEGIN . . . WHILE (i < 20) LOOP . . . OPEN curTest; loop FETCH curRoute INTO idName; if curTest%FOUND then INSERT INTO SD_TEMPNAME (ID_NAME) VALUES (idName); else CLOSE curTest; end if; END LOOP; . . . i:=i+1; END LOOP; . . . END; ... |
|||
:
Нравится:
Не нравится:
|
|||
19.11.2001, 05:49 |
|
многократное использование курсора
|
|||
---|---|---|---|
#18+
А что за курсор у тебя CurRoute, вроде начинаешь работать с curTest, а данные выбираешь из CurRoute? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.11.2001, 06:38 |
|
многократное использование курсора
|
|||
---|---|---|---|
#18+
Правильно конечно читать curTest. Простите, очепятка. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.11.2001, 08:19 |
|
многократное использование курсора
|
|||
---|---|---|---|
#18+
After insert to the table you can do another operation on your id and you don't need to open the cursor once more. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2001, 13:08 |
|
многократное использование курсора
|
|||
---|---|---|---|
#18+
Благодарю за помощь. Код работает. После переустановки ОС и сервера, проблемма исчезла. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2001, 10:56 |
|
многократное использование курсора
|
|||
---|---|---|---|
#18+
На самом деле помимо простого инсерта в таблицу, происходит еще ряд вычислений. В целом алгоритм требует при каждом проходе оператора while сканировать курсор от 0 до max. К сожалению, не смог найти возможности установки курсора на начальную позицию после его использования (предлагается его открывать повторно). Если кто-нибудь знает о такой возможности, буду премного благодарен. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2001, 11:35 |
|
многократное использование курсора
|
|||
---|---|---|---|
#18+
Если тебя не интересуют новые данные, ты при первом проходе можешь отсканить весь курсор и залить в динамическую таблицку, а далее используй её сколько угодно. ТОлько не забудь по окончанию её очистить... С уважением RetLion ... |
|||
:
Нравится:
Не нравится:
|
|||
28.11.2001, 13:21 |
|
|
start [/forum/topic.php?fid=52&msg=32017220&tid=1993485]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
57ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
others: | 15ms |
total: | 162ms |
0 / 0 |