Добро пожаловать, Гость
Логин: Пароль: Запомнить меня
Теоретические аспекты и практические реализации создания, внедрения и использования баз данных, СУБД, хранилищ.
  • Страница:
  • 1
  • 2
  • 3

ТЕМА:

Oracle. Цикл меняет только первую запись 12 года 9 мес. назад #2213

Добрый день!!!

сделал следующее, создал массив и заполнил его данными.
В массиве содержатся 3 записи, по идеи в таблице тоже должны обновится 3 записи, но почему то цикл не шагает
изменяет только первую запись и все... что не так помогите разобраться ?
declare
type t_table is table of varchar2(1000) index by binary_integer;
loTable t_table;

i Number;

begin
loTable(1) := '1212-АДЛ';
loTable(2) := '12121-УКЛ';
loTable(3) := '121212'-УСП;

i:=0;
for i in loTable.first .. loTable.last loop
update table2 set table2.name='Test information' where table2.id=loTable(i);
commit;
end loop;

end;

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Oracle. Цикл меняет только первую запись 12 года 9 мес. назад #2214

Лучше так :)
А commit в loop - это зло :)
declare 
type t_table is table of varchar2(1000) index by binary_integer;
loTable t_table;

i Number;

begin
loTable(1) := '1212-АДЛ';
loTable(2) := '12121-УКЛ';
loTable(3) := '121212-УСП';

i := loTable.first;
while i is not null 
loop
dbms_output.put_line(loTable(i));    
i := loTable.next(i);
end loop;
commit;
end;

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Oracle. Цикл меняет только первую запись 12 года 9 мес. назад #2215

Добрый день!
А почему вы не подумали о nested table / varray + forall ???
Ведь намного проще...

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Oracle. Цикл меняет только первую запись 12 года 9 мес. назад #2216

nested table / varray + forall


Привет, Dior)
forall не всегда быстрее, чем обычный цикл )

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Oracle. Цикл меняет только первую запись 12 года 9 мес. назад #2217

forall не всегда быстрее, чем обычный цикл )


Хм... А когда не быстрее?

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Oracle. Цикл меняет только первую запись 12 года 9 мес. назад #2218

update table2 set table2.name='Test information' where table2.id in ('1212-АДЛ', '12121-УКЛ', '121212'-УСП);

С кавычками тебе тут надо разобраться...

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

  • Страница:
  • 1
  • 2
  • 3
Время создания страницы: 0.242 секунд