2010-11-21 18 views
1

Bir paket yordamının RESTRICT_REFERENCES pragmalarından (WNDS, WDPS, RNDS ...) herhangi biri ile işaretlenip işaretlenmediğini nasıl programlayabilirim? SöyleyebileceğimRESTRICT_REFERENCES sorgulamasını pragma

+0

Sadece bu prosedürü __execute__ __immediate__ kullanarak pragma (demek WNDS) ile işaretlenen başka bir yordamdan çağırmayı deneyebilirim ve söz konusu yordam WNDS değilse bir hata alırdım. Biliyorum, bu bir overkill. Daha iyi çözümler hoş geldiniz! – milan

cevap

0

tek yol paket kaynak kodu, örneğin sorgulamaktır:

select text from all_source 
where UPPER(text) like '%PRAGMA RESTRICT_REFERENCES%' 
and owner = :owner 
and name = :package_name 
and type = 'PACKAGE'; 

tamamen güvenilir değil Pragma tanımı birden fazla satır halinde bölünmüş ya da sahip olması durumunda (bu onu almak olmaz fazladan boşluk ya da bir şey).

+0

Paketteki her alt program için (işlev prosedürü) pragmalar belirtildiğinde hiç çalışmayacaktır. – milan

+0

@milan: Aslında, bu sorgu size tam olarak verecektir - her işlem veya işlev için bir satır. Ardından, kodlama stilinin ne kadar tutarlı olduğuna bağlı olarak, adı isimlendirebilirsiniz. –

İlgili konular