ORACLE Jak używać szpuli z dynamiczną lokalizacją szpuli
Ok, więc jestem kompletnym nowicjuszem z wyrocznią. Teraz to jest na uboczu;
Myślę, że możesz zrozumieć, co próbuję zrobić poniżej. Dla każdej znalezionej procedury przechowywanej wyślij DDL do nazwy pliku z jego nazwą.
Problem polega na tym, że nie mogę dowiedzieć się, jak uzyskać cel buforowania, aby odebrał wartość FileName ustawianą przez kursor.
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;
Jakieś pomysły co do tego, gdzie się mylę? a jeśli ktoś ma taki przykład, bardzo bym to docenił.
Czuję, że muszę tańczyć wokół niego, ponieważ wtedy najpierw utworzę kolumnę
spool &ColName
Otrzymuję wynik, po prostu nie mogę zmienić dynmicznie tego & colname
Dzięki za pomoc.