FOR rec IN (SELECT Procedure_Name
FROM DATAMART_PROCESS_STEPS
ORDER BY Procedure_Order)
LOOP
EXECUTE rec;
END LOOP;
У меня есть процедура, которая управляет серией процедур из таблицы DATAMART_PROCESS_STEPS
, и мне нужно динамически запускать каждую процедуру в этой таблице. Oracle SQL Developer не нравится, как я выполняю процедуры; он выдает синтаксическую ошибку. Каков правильный способ достижения этой задачи?Как динамически вызвать хранимую процедуру?
EXECUTE 'BEGIN ' || rec || '; END';
Я также пробовал это после прочтения учебника по хранимым процедурам, но у него есть проблема с одинарными кавычками. Помогите. Если вам нужно больше деталей или кода, просто спросите.
Заранее спасибо.
Что ошибка Oracle бросает? Скопируйте ошибку в буфер обмена и выполните [веб-поиск] (http://google.com/search?q=your-error-comes-here). Ознакомьтесь с причинами ошибки и попробуйте предоставленные решения. Если вы не нашли решение, тогда [задайте вопрос] (http://stackoverflow.com/questions/ask) – xameeramir
@student Спасибо за совет, но я уже сделал это, как вы предложили; «Обнаружен символ rec, когда ожидается ... ect». Он думает, что я должен: = вместо этого. Веб-поиск не помог. – PZNevill
Вы пытались использовать EXECUTE IMMEDIATE? –