PL/SQL Вставка 1 строки для каждого результата в выборке

Я пишу процедуру PL/SQL, которая выполняет выборку на основе входных переменных, а затем вставляет строку для каждого результата в выборке. У меня возникли проблемы с отладкой того, что не так с моим запросом из-за моей новизны в PL/SQL. Я знаю, что это должно быть легко, но я застрял здесь по какой-то причине. Спасибо за вашу помощь!

CREATE OR REPLACE PROCEDURE setup_name_map(ranking_id IN NUMBER, class_string IN VARCHAR2) 
IS
BEGIN

    FOR rec IN (SELECT NAME_ID FROM PRODUCT_NAMES WHERE NAME = class_string)
    LOOP
        EXECUTE IMMEDIATE 'INSERT INTO NAME_RANKING (NAME_ID, RANKING_ID) VALUES (' || rec.NAME_ID || ', ' || ranking_id || ')';
    END LOOP;
END;

Согласно Oracle Developer Compiler... 'NAME_ID' является недопустимым идентификатором. Пробовал заключать в кавычки, но не в кости.Он также жалуется, что переменные индекса цикла «REC» используются недопустимо. Любая помощь очень ценится.

18
задан Craig 30 September 2013 в 22:23
поделиться