Sourcen entladen

vtolle

Grünschnabel
Hi,
ich bin Neuling bzgl. Oracle, SQL,PL/SQL. Habe bei mir Oracle 10g Express Edition laufen.
Mit einem SQL+ -Skript habe ich (testweise) eine PL/SQL-Function in die DB geladen (mit create or replace). Funktioniert alles wunderbar.

Was ich jetzt brauche und nicht weiß wie:
Den Sourcecode (die PL/SQL-Function) wieder mit SQL+ entladen in ein flaches File. Gibt es einen "unload"-Befehl (o.ä.) ? Wie/Wo finde ich meine Sourcen (welche Tabelle)?

Bin für jede konstruktive Hilfe dankbar !
 
Hallo,

die Sourcen zu Packages / gespeicherten Prozeduren / Funktionen kannst du dir folgendermassen anschauen:

SQL:
select * 
  from user_source u 
 where u.name='<functionname>'

Dort siehst du Quelltext-Zeile für Quelltext-Zeile deine Funktion und kannst das ganze auch wieder zusammenbauen.

Einfacher ist es, du nimmst eines der folgenden Tools, die nehmen dir diese Arbeit ab:

- SQL Developer von Oracle selbst
- Toad for Oracle
- PL/SQL Developer

Falls du es aber unbedingt "von Hand" machen möchtest, sag Bescheid, dann poste ich evt. noch einen Schnipsel.

Markus
 
Zuletzt bearbeitet:
Hallo Markus,
danke für die schnelle Antwort.

Wäre super, wenn Du mir noch sagen könntest, wie ich das manuell machen kann. Ich will das alles Skriptgesteuert erledigen und kein anderes Tool einsetzen.

Nochmals vielen Dank.
Valko
 
Hallo,

schau mal hier:

http://www.revealnet.com/pipelines/plsql/archives.htm#code19

Diese Lösung generiert dir per SPOOL das entsprechende File, das du verwenden kannst um deine Sourcen wieder einzuspielen.

Alternativ kann man auch mit UTL_FILE arbeiten, allerdings ist diese Lösung auf den Oracle-Server beschränkt.

Als dritte Möglichkeit sehe ich noch DataPump, das man beispielsweise mit folgender Parameterdatei dazu bewegen kann, bestimmte Funktionen zu exportieren:

Code:
SCHEMAS=dein_schema
INCLUDE=FUNCTION:"LIKE '<functionname>'"
DUMPFILE=func.dmp

Aufgerufen wird das dann mit
Code:
expdp userid/passwd@<connect-id> parfile=<parfile>

Markus
 

Neue Beiträge

Zurück