Хорошо, так что я полный новичок с оракулом. Теперь, когда это не так;
Я думаю, вы можете понять, что я пытаюсь сделать ниже.
Для каждой найденной хранимой процедуры выведите DDL в имя файла с его именем.
Проблема в том, что я не могу понять, как заставить цель спула получить значение FileName, которое устанавливается курсором.
DECLARE
objName varchar2(50);
FileName varchar2(50);
cursor curProcs is
select OBJECT_NAME into objName
FROM ALL_PROCEDURES WHERE OWNER = 'AMS'
ORDER BY OBJECT_NAME; -- get all procs in db
BEGIN
open curProcs;
if curProcs%ISOPEN THEN
LOOP
FETCH curProcs into objName;
EXIT WHEN curProcs%NOTFOUND;
FileName := 'C:\ ' || objName || '.PRC.SQL';
spool FileName; --BREAKS
DBMS_METADATA.GET_DDL('PROCEDURE',objName);
spool off;
END LOOP;
END IF;
END;
Есть идеи, где я ошибаюсь? и если у кого-то есть пример этого, я был бы очень признателен.
Я чувствую, что должен танцевать вокруг этого, потому что если я создаю столбец изначально
тогда
spool &ColName
я получаю результат, я просто не могу изменить это имя & colname
Спасибо за вашу помощь.