Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 cursor + изменение значения поля  [new]
Alexey Koptenkov
Member

Откуда:
Сообщений: 18
Добрый день,

Что делаю не так?
В процедуре открывается курсор, присваивается каждому rid := 1 , после закрытия корсора commit.
После работы процедуры смотрю таблицу test1, как в колонке rid били null так и остались.

Понимаю не эффективно и можно одним UPDATE, но - учусь, разбираюсь в оракле потихоньку, поэтому интересует почему не работает.

Oracle Database 10g Release 10.2.0.1.0 - Production
PL/SQL Release 10.2.0.1.0 - Production
CORE 10.2.0.1.0 Production
TNS for 32-bit Windows: Version 10.2.0.1.0 - Production
NLSRTL Version 10.2.0.1.0 - Production

create table test1 (
id number,
rid number
);

insert into test1 (id) values(1);
insert into test1 (id) values(2);
insert into test1 (id) values(3);
insert into test1 (id) values(4);

CREATE OR REPLACE PROCEDURE calc2
IS
BEGIN
   FOR x IN (SELECT     ID, rid
                    FROM test1
              FOR UPDATE)
   LOOP
      x.rid := 1;
   END LOOP;

   COMMIT;
EXCEPTION
   WHEN OTHERS
   THEN
      -- Consider logging the error and then re-raise
      RAISE;
END calc2;
/
20 ноя 06, 00:54    [3421810]     Ответить | Цитировать Сообщить модератору
 Re: cursor + изменение значения поля  [new]
A.K.
Member

Откуда: Пенза
Сообщений: 2571

Для обновления данных в записи в таблице, соответствующей текущей строке курсора, следует использовать конструкцию:
UPDATE <table> SET <...> WHERE CURRENT OF <cursor>

Posted via ActualForum NNTP Server 1.3

20 ноя 06, 01:08    [3421825]     Ответить | Цитировать Сообщить модератору
 Re: cursor + изменение значения поля  [new]
Alexey Koptenkov
Member

Откуда:
Сообщений: 18
Насколько понимаю, на месте <cursor>, должно быть имя явного курсор? Если неявный курсор то апдейтить записи не получится?

CURRENT OF <cursor>
20 ноя 06, 11:39    [3423038]     Ответить | Цитировать Сообщить модератору
 Re: cursor + изменение значения поля  [new]
contr
Member

Откуда:
Сообщений: 1909
Alexey Koptenkov

Уважаемый, почему бы Вам не обратить свой взор на замечательное в своем роде руководство "Oracle Application Development Guide" и не перестать задавать на форуме вопросы уровня детского сада?
20 ноя 06, 11:43    [3423072]     Ответить | Цитировать Сообщить модератору
 Re: cursor + изменение значения поля  [new]
Alexey Koptenkov
Member

Откуда:
Сообщений: 18
to contr

Спасибо ...
20 ноя 06, 12:34    [3423623]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить