|
|
|
Cursor
|
|||
|---|---|---|---|
|
#18+
Есть такая процедура is CURSOR c1 IS select column from table; var1 c1%ROWTYPE; begin open c1; FETCH c1 INTO var1; end; Подскажите, пожалуйста, ка ее вызвать, что бы получить значения var1? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2003, 12:07 |
|
||
|
Cursor
|
|||
|---|---|---|---|
|
#18+
Мона попробовать в цикле из блока PL/SQL ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2003, 12:27 |
|
||
|
Cursor
|
|||
|---|---|---|---|
|
#18+
заголовок процедуры где? надо либо функцией возвратить через RETURN, либо процедурой через OUT параметр. В цикле этого делать не надо! Так как у тебя и open будет вызываться каждый раз. Это если тебе фетч только ОДИН раз надо сделать, а если по всему курсору идти, то надо отдельно сделать open, а потом фетчить. Или использовать REF CURSOR переменную. И еще - курсор-то надо закрывать. И еще ошибки надо ловить. Типа NOT_FOUND ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2003, 12:51 |
|
||
|
Cursor
|
|||
|---|---|---|---|
|
#18+
PROCEDURE getPayItemCursor(InvID IN NUMBER, OblID IN NUMBER, PayItem_cur IN OUT TPayItemCursor) IS BEGIN trace('skv_dms_invoice::getPayItemCursor: getting a cursor for InvoiceID =['|| TO_CHAR(InvID)||'], OblastID = ['||TO_CHAR(OblID)||']'); OPEN PayItem_cur FOR SELECT * FROM DMSPAYITEM WHERE INVOICEID = InvID AND OBLASTID = OblID; END; Где TPayItemCursor определен как SUBTYPE TPayItem IS DMSPAYITEM%ROWTYPE; -- Pay item's cursor type TYPE TPayItemCursor IS REF CURSOR RETURN TPayItem; А дальше используя курсорную переменную, делаешь прохдо по ресалт-сету. Не забудь закрыть курсор. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2003, 13:01 |
|
||
|
|

start [/forum/topic.php?fid=52&fpage=2818&tid=1992156]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
26ms |
get topic data: |
8ms |
get forum data: |
3ms |
get page messages: |
34ms |
get tp. blocked users: |
1ms |
| others: | 204ms |
| total: | 305ms |

| 0 / 0 |
