Kuba Zieliński

Kuba Zieliński Risk Manager

Temat: Pilnie potrzebna pomoc dot. all_dependencies w Oracle'u

Mianowicie jestem poczatkujacym w programowaniu PL/SQL i potrzebuje procedury, w ktorej parametrem bedzie name obiektu, po wprowadzeniu ktorego musza wyswietlic sie wyniki wskazujace, czy w/w obiekt jest referenced_name innych obiektow??? Jesli tak to ktorych???

konto usunięte

Temat: Pilnie potrzebna pomoc dot. all_dependencies w Oracle'u

Kuba Zieliński:
Mianowicie jestem poczatkujacym w programowaniu PL/SQL i potrzebuje procedury, w ktorej parametrem bedzie name obiektu, po wprowadzeniu ktorego musza wyswietlic sie wyniki wskazujace, czy w/w obiekt jest referenced_name innych obiektow??? Jesli tak to ktorych???

A co to jest referenced_name - czy chodzi o zależności miedzy obiektami?
Kuba Zieliński

Kuba Zieliński Risk Manager

Temat: Pilnie potrzebna pomoc dot. all_dependencies w Oracle'u

tak Tomku, dokladnie zaleznosc obiektow..

konto usunięte

Temat: Pilnie potrzebna pomoc dot. all_dependencies w Oracle'u

Kuba Zieliński:
tak Tomku, dokladnie zaleznosc obiektow..

Może napisz do czego tego potrzebujesz jak chcesz z tego korzystać. Do tego wystarczy jeden select - jak koniecznie chcesz mieć funkcje to funkcja musi zwracać jakąś kolekcję Pl/SQL do której prze Bulk Collect wrzucisz dane z selecta.
Kuba Zieliński

Kuba Zieliński Risk Manager

Temat: Pilnie potrzebna pomoc dot. all_dependencies w Oracle'u

mianowicie, jako parametr daje name obiektu, o ktorym chce sie dowiedziec, czy jest referenced_name innego obiektu badz tez name jeszcze innego obiektu. Nie musze do tego wykorzystac funkcji rekursywnej???

konto usunięte

Temat: Pilnie potrzebna pomoc dot. all_dependencies w Oracle'u

Kuba Zieliński:
mianowicie, jako parametr daje name obiektu, o ktorym chce sie dowiedziec, czy jest referenced_name innego obiektu badz tez name jeszcze innego obiektu. Nie musze do tego wykorzystac funkcji rekursywnej???
Czyli chcesz cały graf zależności? Myślę bez podania poziomu do jakiego chcesz sięgać to nie da rady bo się możesz zapętlić no i jedne obiekt może być zależny od 50 te 50 od 250 itp. Najlepiej do tego posłuży connect by i start with i obędzie się bez rekurencji.
Kuba Zieliński

Kuba Zieliński Risk Manager

Temat: Pilnie potrzebna pomoc dot. all_dependencies w Oracle'u

tak, caly graf zaleznosci (prosze wybaczyc brak polskich znakow, ale przebywam w Niemczech).. nie wiem czy to ma znaczenie, ale w ten sposob chce sprawdzac zaleznosc pomiedzy roznymi view-sami.. All_dependencies zawiera takie oto kolumny: owner, name, type, referenced_owner, referenced_name, referenced_type, referenced_link_name i dependency_type. Napisalem takiego selecta:

select F5.referenced_name as EINS , F4.referenced_name as ZWEI, F3.referenced_name as DREI, F1.referenced_name as VIER, F2.referenced_name as FÜNF, F2.name as last_objekt_SECHS
from user_dependencies F1, user_dependencies F2, user_dependencies F3, user_dependencies F4, user_dependencies F5 where F1.name=F2.referenced_name and F1.referenced_name=F3.name and F3.referenced_name=F4.name and F4.referenced_name=F5.name and F1.name='QS_LAGERARTIKEL';

jednakze, to sie nadaje wylacznie w przypadku lancucha piecioelementowego do tego konkretnego scenariusza :(

Temat: Pilnie potrzebna pomoc dot. all_dependencies w Oracle'u

Tak jak było już wspomniane trzeba będzie podać poziom, by wiedzieć kiedy funkcja ma zakończyć wywoływanie samej siebie.
Przykład rekurencji jest dostępny pod adresem http://www.ploug.org.pl/materialy.php?action=sz09 po kliknięciu na link ORACLE PL/SQL otworzy się dokumentu PDF (strona 25., może będzie pomocne...).
Kuba Zieliński

Kuba Zieliński Risk Manager

Temat: Pilnie potrzebna pomoc dot. all_dependencies w Oracle'u

niestety, ale zbyt zielony w te klocki jeszcze jestem :(

konto usunięte

Temat: Pilnie potrzebna pomoc dot. all_dependencies w Oracle'u


declare
TYPE dep IS RECORD (
l number,
name VARCHAR2 (30),
ref_name VARCHAR2 (30)
);
v_obj VARCHAR2(30) := 'ORDER_ITEMS';
TYPE deps IS TABLE OF dep;
v_deps deps;
begin
select level l, name, referenced_name
bulk collect into v_deps
from user_dependencies
where level < 2
start with referenced_name = v_obj
connect by prior name = referenced_name
order by level;
--
for i in v_deps.first .. v_deps.last loop
dbms_output.put_line(v_deps(i).l || ', ' || v_deps(i).name ||', ' || v_deps(i).ref_name );
end loop;
end;

to przerobić na funkcje to bułka z masłem.
Kuba Zieliński

Kuba Zieliński Risk Manager

Temat: Pilnie potrzebna pomoc dot. all_dependencies w Oracle'u

no niestety, ale musze to zrobic z wykorzystaniem funkcji rekurencyjnej :(

konto usunięte

Temat: Pilnie potrzebna pomoc dot. all_dependencies w Oracle'u

Kuba Zieliński:
no niestety, ale musze to zrobic z wykorzystaniem funkcji rekurencyjnej :(
A możesz powiedzieć co jest tego powodem ?
Kuba Zieliński

Kuba Zieliński Risk Manager

Temat: Pilnie potrzebna pomoc dot. all_dependencies w Oracle'u

tak sobie uwidzial moj Manager :(

konto usunięte

Temat: Pilnie potrzebna pomoc dot. all_dependencies w Oracle'u

Kuba Zieliński:
tak sobie uwidzial moj Manager :(
No to nie wiem czy ma świadomość że rekurencja jest masakryczni kosztowana jeśli chodzi o zasoby. jak zrobisz rekurencję to potem porównaj czas wykonania rekurencji w porównaniu z jednym selektem - i dla większej ilości poziomów to różnica będzie na poziomie rzędu wielkości.
Kuba Zieliński

Kuba Zieliński Risk Manager

Temat: Pilnie potrzebna pomoc dot. all_dependencies w Oracle'u

no ale on chce wszystko w postaci drzewa, aby znac zaleznosci pomiedzy wszystkimi 'pochodnymi' obiektami :(
Kuba Zieliński

Kuba Zieliński Risk Manager

Temat: Pilnie potrzebna pomoc dot. all_dependencies w Oracle'u

tak wiec mam funkcje postaci:
************************
create or replace
function jakub_fac(x IN integer)
return integer as
jakub_facc integer;
begin
if x=0
then
jakub_facc :=1;
else jakub_facc :=x*jakub_fac(x-1);
end if;

return jakub_facc;
end jakub_fac;
************************
i teraz musze do niej dorzucic element tekstu, albo przerobic na procke, wszystko po to aby na sam koniec miec postac drzewa z wszystkimi powiazanymi obiektami :(
Kuba Zieliński

Kuba Zieliński Risk Manager

Temat: Pilnie potrzebna pomoc dot. all_dependencies w Oracle'u

naprawde Nikomu cos takiego jak do tej pory nie bylo potrzebne???

konto usunięte

Temat: Pilnie potrzebna pomoc dot. all_dependencies w Oracle'u

Kuba Zieliński:
naprawde Nikomu cos takiego jak do tej pory nie bylo potrzebne???
Podejrzewam że nikt nie wiem o co w tym chodzi. Bo ja np to nie mam zielonego pojęcia co chcesz osiągnąć.
Kuba Zieliński

Kuba Zieliński Risk Manager

Temat: Pilnie potrzebna pomoc dot. all_dependencies w Oracle'u

potrzebny schemat jak poszczegolne obiekty sa od siebie zalezne.. a w ten sposob usunac np widok, ktory do niczego nie jest wykorzystywany...
Pawel Hadam

Pawel Hadam Experienced IT
consultant, PRINCE2

Temat: Pilnie potrzebna pomoc dot. all_dependencies w Oracle'u

To moze nie trzba sprawdzac wszystkich poziomow, tylko dla kazdego widoku sprawdzic 1 raz czy jest on gdzies referencowany? Jesli nie jest juz na pierwszym poziomie wykorzystywany do niczego to gotowe. Czy zle mysle?

Następna dyskusja:

Potrzebna pomoc, informacja...




Wyślij zaproszenie do