17 Haziran 2009 Çarşamba

Oracleda procedure trigger gibi db objeleri içinde arama yapmak.

Oracle da prosedürler, triggerlar, fonksiyonlar, şema sahipleri gibi obje tipleri içerisinde arama yapabilmek veya belli bir şemaya ait içeriği listeleyebilmek için 'all_source' tablosunu kullanabiliriz. Bu tabloda objeler kullanıcı(owner), isim(name), tip(type), objede kelimenin geçtiği satır(line), obje içeriği(text) gibi özellikleriyle birlikte tutulmaktadır.

Buna göre prosedürler içerisinde arama yapabilmek için aşağıdaki sorgu kullanılabilir.

select * from all_source
where name = '' and type = 'PROCEDURE'
order by line;

Yine aynı tablo kullanılarak bir tablonun hangi objeler tarafından kullanıldığını belirleyebilmek için objelerin içeriklerinde aşağıdaki gibi aratma yapabiliriz.

select * from all_source
where text like '%%'
order by name;

Eğer aramayı belirli bir kullanıcı için kısıtlamak istiyorsak 'all_source' tablosu yerine login olduğumuz kullanıcıya ait objeleri tutan 'user_source' tablosunu kullanabiliriz. Veya 'all_source' tablosunda owner alanı için bir değer belirleyerek sorgumuzun where kısmına ekleyebiliriz.

Hiç yorum yok:

Yorum Gönder

Popüler Yayınlar