We are developing a large application base
on PL/SQL. We often have to change DB-Objects (e.g. adding a new
column to a Table-Object or grant/revoke some privileges from/to
some DB-Objects). With DB-Objects, I mean things like tables,
triggern, tablespaces, synonyms and so on...
The biggest trouble comes within every new
release. To enhance our application we have to know about the latest
state of all DB-Objects. To find it out, we have to run through the
history of all PL/SQL-Files.
There must be a better way to solve this
problem. We wish something like "export all objects" could be run then
we can get a lot of SQL-Files that contain the definitions of all
objects. We could then take these files and put it into our new DB, so
we have the latest state of the DB (without running through the
history).
P.S. Sorry about my English.
This question posed on 18 November 2005
Answer:
You can build a script that utilizes the
dbms_metadata package to do this. Using this package you can capture
the command to build any database object. Use a cursor from
dba_objects to dynamically dump the SQL for the objects you are
interested in.