2009-03-10 13 views
12

SELECT *, ALL_OBJECTS öğesinden çeşitli yordam/paket/tablo/diğer db nesnelerinin isimlerini döndürür. Eşleşen bir dizge için PL/SQL koduna bakmak istiyorum. Bunu nasıl yaparım?Arama PL/SQL Kodu

gibi

şey: SEÇ (pseudocode) * All_Code WHERE '% mytext%' gibi

cevap

28

kullanın gibi bir şey line_of_code: USER_SOURCE tablosunu kontrol, birçok seçenek vardır

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

.

bir dize için tüm kodu aramak için: kodunu görüntülemek

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

Not _SOURCE tablolarda yer almamaktadır. Görünüm kodu, UZUN bir sütun olan ve sorgulanması zor olan [USER|ALL|DBA]_VIEWS.TEXT'da saklanır.

+2

Veya ALL_SOURCE WHERE OWNER = [şema] – cagcowboy

+2

Sonuçları daha net hale getirmek için "SİPARİŞ TARAFINDAN, ad, satır" komutunu kullanmak isteyebilirsiniz. – Barry

+2

Büyük/küçük harfe duyarlı: Üstte (metin) üstte (% ne arıyordum% ') – tuinstoel