Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.11.14;
Скачать: CL | DM;

Вниз

Почему не работает цикл forall   Найти похожие ветки 

 
alsov1   (2004-10-15 15:54) [0]

Приветствую Мастера!

На этом форуме сказали, что цикл 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


 
Reindeer Moss Eater ©   (2004-10-15 16:17) [1]

Для циклов FOR не рекомендуют объявлять переменную индекс цикла.
Запрещено объявлять переменную-индекс цикла для циклов FORALL


 
Johnmen ©   (2004-10-15 16:28) [2]

Короче...
http://oracle.ukrsat.com/tutorial/openxs.php?n=23
http://www.mid.main.vsu.ru/docs/oracle9/server.901/a90202/pcmus.htm
Это сообщение об ошибке следовало бы сформулировать так: «Ограничение реализации: не поддерживается массовая привязка отдельных полей элементов коллекции, состоящей из объектов или записей». Массовая привязка в Oracle поддерживается только по отношению к коллекциям, основанным на примитивных типах данных.

Или проблемы с поисковиками ?


 
alsov1   (2004-10-15 17:51) [3]

Ладно, и на том спасибо



Страницы: 1 вся ветка

Текущий архив: 2004.11.14;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.043 c
3-1097693800
kirilllius
2004-10-13 22:56
2004.11.14
обменном данных


1-1098877184
Pentium133
2004-10-27 15:39
2004.11.14
А вот проблема с TComboBox


14-1099059159
Kerk
2004-10-29 18:12
2004.11.14
США могут повторить судьбу СССР


1-1099403247
TSa
2004-11-02 16:47
2004.11.14
Заставка


1-1099047852
Pentium133
2004-10-29 15:04
2004.11.14
TStringList и IniFile