2009-03-10 5 views
12

SELECT * from ALL_OBJECTS zwraca nazwy różnych procedur/pakietów/tabel/innych obiektów db. Chcę zajrzeć do kodu PL/SQL dla pasującego napisu. Jak mam to zrobic?Wyszukaj kod PL/SQL

coś takiego: (Pseudokod) SELECT * FROM all_code GDZIE line_of_code jak '%' % myText

Odpowiedz

28

użyć czegoś takiego:

SELECT * 
     FROM USER_SOURCE 
    WHERE type='PACKAGE' 
     AND NAME='PACKAGE_NAME' 
    ORDER BY type, name, line; 

Istnieje wiele opcji, sprawdź tabelę USER_SOURCE.

By sprawdzić cały kod dla String:

SELECT * 
    FROM ALL_SOURCE 
    WHERE UPPER(text) LIKE UPPER('%what I am searching for%') 
ORDER BY type, name, line 

Zauważ, że zobaczyć kod nie jest wliczone w _SOURCE tabelach. Kod widoku jest przechowywany w [USER|ALL|DBA]_VIEWS.TEXT, który jest kolumną LONG i trudny do zapytania.

+2

Lub ALL_SOURCE WHERE OWNER = [schemat] – cagcowboy

+2

Możesz chcieć "ORDER BY type, name, line", aby wyniki były jaśniejsze. – Barry

+2

Rozróżnianie wielkości liter: gdzie górny (tekst) podobny do górnego (%, którego szukam%) – tuinstoel