![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Почему не работает цикл forall
alsov1 © (2004-10-15 15:54:00)Приветствую Мастера!
На этом форуме сказали, что цикл forall работает быстрее при вставке, апдейте, удалении записей
Но у меня он вообще работать не хочет
Процедура вот такая:
CREATE or replace PROCEDURE Tester
is BEGIN
declare
type TTest is record(
ID_Z NUMBER(8),
ID_D NUMBER(8),
DATA TIMESTAMP(1),
ZNACH NUMBER,
SOSI CHAR(1));
type TArrTest is table of TTest;
rand_arr TArrTest;
j number;
data timestamp(1) := systimestamp;
begin
rand_arr := TArrTest();
rand_arr.extend(50000);
for i in 1 .. 50000
loop
rand_arr(i).id_z := abs(dbms_Random.VALUE(1, 99999999));
rand_arr(i).id_d := abs(dbms_Random.VALUE(1, 99999999));
rand_arr(i).DATA := data;
rand_arr(i).znach := dbms_Random.VALUE;
rand_arr(i).sosi := dbms_Random.STRING('U', 1);
end loop;
forall j in rand_arr.first .. rand_arr.last
insert into test
values (rand_arr(j).ID_Z,
rand_arr(j).id_d,
rand_arr(j).data,
rand_arr(j).znach,
rand_arr(j).sosi);
commit;
end;
end;
/
Говорит вот чего
Ошибка:PLS-00436: implementation restriction: cannot reference fields of BULK In-BIND table of records
57> values (rand_arr(j).ID_Z,
^
Ошибка:PL/SQL: ORA-00904: : invalid identifier
Ошибка:PL/SQL: SQL Statement ignored
alsov1 (2004-10-15 17:51:00) [1]Ладно, и на том спасибо
Johnmen (2004-10-15 16:28:00) [2]Короче...
http://oracle.ukrsat.com/tutorial/openxs.php?n=23
http://www.mid.main.vsu.ru/docs/oracle9/server.901/a90202/pcmus.htm
Это сообщение об ошибке следовало бы сформулировать так: «Ограничение реализации: не поддерживается массовая привязка отдельных полей элементов коллекции, состоящей из объектов или записей». Массовая привязка в Oracle поддерживается только по отношению к коллекциям, основанным на примитивных типах данных.
Или проблемы с поисковиками ?
Reindeer Moss Eater (2004-10-15 16:17:00) [3]Для циклов FOR не рекомендуют объявлять переменную индекс цикла.
Запрещено объявлять переменную-индекс цикла для циклов FORALL