oracle копирование таблицы построчно

DECLARE
    v_error_msg VARCHAR2(4000);
BEGIN
    FOR rec IN (SELECT перечислить колонки FROM view_name) LOOP
        BEGIN
            -- Вставка строки в таблицу
            INSERT INTO table_name
            VALUES rec;

            -- Опционально: можно делать коммит после каждой вставки
            -- COMMIT;

        EXCEPTION
            -- Обработка ошибок
            WHEN OTHERS THEN
                -- Получаем сообщение об ошибке
                v_error_msg := SQLERRM;
                
                -- Выводим информацию о проблемной строке и ошибке
                DBMS_OUTPUT.PUT_LINE('Ошибка при обработке строки: ' || v_error_msg);
                DBMS_OUTPUT.PUT_LINE('Проблемная строка: ' || rec.column1 || ', ' || rec.column2); -- Можно добавить вывод других колонок
        END;
    END LOOP;

    -- Заключительный коммит
    COMMIT;
END;

    

Comments

Popular posts from this blog

xlam

crypto