Оператор игнорировал ошибку при вставке данных - PullRequest
0 голосов
/ 21 января 2019

Я пишу процедуру для вставки данных в одну таблицу путем извлечения данных из другой таблицы.При вставке данных возникает ошибка (оператор SQL игнорируется) и (в этом месте этот столбец запрещен).Можете подсказать, что я делаю не так

    SET SERVEROUTPUT ON;
    CREATE OR REPLACE PROCEDURE KOL2
       IS
       CURSOR CUR IS SELECT empno, ename, SUM(SAL) sal FROM EMP where job = 
        'MANAGER';
      nr_kier NUMBER; nazwisko_kier varchar(20); suma_pensji int; 
      ostatnia_mod date;
    BEGIN
    OPEN CUR;
    LOOP
    FETCH CUR INTO nr_kier, nazwisko_kier, suma_pensji;
    EXIT WHEN CUR%NOTFOUND;
    INSERT INTO statystyka_kierownikow (nr_kier , naziwsko_kier, 
       suma_pensji, ostatnia_mod)
    VALUES (nr_kier, nazwisko_kier, sal, sysdate);
    END LOOP;
    CLOSE CUR;
    COMMIT;
     END;

1 Ответ

0 голосов
/ 21 января 2019

что вы пытаетесь сделать, это трудоемкая задача.Это даже не подходит для SQL.Вы пытаетесь получить каждую запись и сделать вставку одну за другой.

Проверьте мое решение ниже.

 INSERT INTO statystyka_kierownikow 
    (nr_kier , naziwsko_kier, suma_pensji, ostatnia_mod)
       SELECT empno, ename, SUM(SAL) sal 
       FROM EMP where job = 'MANAGER'
       GROUP BY empno, ename;
...