Ваша проблема не звучит так, как будто вам нужен PL / SQL.
Подойдет одна SQL-вставка (если я правильно понял ваш вопрос):
INSERT INTO new_table
SELECT id, val FROM books WHERE book = 0;
Если вам все еще нужна процедура, включите ее в процедуру:
CREATE OR REPLACE PROCEDURE my_proc AS
BEGIN
INSERT INTO new_table
SELECT id, val FROM books WHERE book = 0;
END my_proc;
Старайтесь избегать зацикливания курсора в PL / SQL и вставки значений, когда это можно сделать в одном SQL.