6 Stimmen

Suche nach umschlossenen Paketen/Prozeduren in Oracle SQL

Eine einfache Frage, aber eine Suche mit Google und SO hat nichts ergeben.

Weiß jemand, ob es möglich ist, im Oracle Data Dictionary nach allen umhüllten (mit dem Dienstprogramm "wrap" verschleierten) Paketen/Prozeduren zu suchen?

Danke! John.

11voto

Codo Punkte 70076

Sie müssen die erste Zeile des Quellcodes überprüfen:

select type, owner, name
from all_source
where line = 1
  and instr(text, 'wrapped') > 1;

Außer bei sehr langen gewrappten Paketen haben gewrappte Typen normalerweise den gesamten Code in einer Zeile (Zeile 1), während ungewrappte Typen für jede Zeile des Quellcodes eine eigene Zeile haben.

1voto

Rajeev Sreedharan Punkte 1746

Suche nach dem Text ' gewickelt ' in Zeile 1 unter Verwendung von all_source/user_source zeigt verpackte Objekte an. Dies könnte jedoch zu Problemen führen, wenn der Name einer Einheit selbst den Text 'wrapped' enthält; Sie könnten stattdessen :

select u.object_name
  from sys.procedure$ p, user_objects u
 where u.object_id = obj#
   AND bitand(p.options, 2) <> 0;

Vollständige Ansicht des Datenbankobjekts :

select d.owner,
       d.object_name,
       case bitand(p.options, 2)
         when 0 then
          'PLAIN'
         else
          'WRAPPED'
       end wrapped
  from sys.procedure$ p, dba_objects d
 where d.object_id = obj#
   and d.owner = USER;

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X