Итак, я полный новичок в оракуле. Теперь, когда это не по пути;
Я думаю, вы можете понять, что я пытаюсь сделать ниже. Для каждой найденной хранимой процедуры выведите 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
Спасибо за вашу помощь.