| Oracle FAQ | Your Portal to the Oracle Knowledge Grid | |
Home -> Community -> Usenet -> c.d.o.tools -> Re: looking for schema re-engineering script
I found this lying around. It doesn't look like it does everything, but it's a start.
Rem PANIC.SQL
set pages 0
set feedback off
Rem
Rem Create All Tablespaces.
Rem
select 'create tablespace ' || T.tablespace name || chr(10) ||
'datafile ''' || F.file name || ''' size ' || to char(F.bytes/1048576)
|| 'M' || chr(10) ||
'default storage (Initial ' || to char(T.initial extent) ||
' next ' || to char(T.next extent) || ' minextents ' ||
to char(T.min extents) || chr(10) ||
' maxextents ' || to char(T.max extents) || ' pctincrease
' ||
to char(T.pct increase) || ') online;'
from
sys.dba data files F,
sys.dba tablespaces T
where
T.tablespace name = F.tablespace name
and T.tablespace name != 'SYSTEM'
and F.file id = ( select min(file id)
from sys.dba data files
where tablespace name =
T.tablespace name )
Rem
Rem Create All Tablespace Datafile Extents.
Rem
select 'alter tablespace ' || T.tablespace name || chr(10) ||
'add datafile ''' || F.file name || ''' size ' ||
to char(F.bytes/1048576) || 'M;'
from
sys.dba data files F,
sys.dba tablespaces T
where
T.tablespace name = F.tablespace name
and F.file id != ( select min(file id)
from sys.dba data files
where tablespace name =
T.tablespace name )
Rem
Rem Create System Roles
Rem
select 'create role '|| role ||
decode(password required,'N',' not identified;',
' identified externally;')
from sys.dba roles
Rem
Rem Create System Profiles
Rem
select distinct 'create profile ' || profile || ' limit ' || ';'
from sys.dba profiles
/
select 'alter role ' || profile || ' limit ' ||
resource name || ' ' || limit || ';' from sys.dba profiles
where limit != 'DEFAULT'
and ( profile != 'DEFAULT'
or limit != 'UNLIMITED' )
Rem
Rem Create ALL User Connections
Rem
select 'create USER ' || username ||
' identified by XXXXX ' || chr(10) ||
' default tablespace ' || default tablespace ||
' temporary tablespace '|| temporary tablespace || chr(10) ||
' quota unlimited on ' || default tablespace || ' ' ||
' quota unlimited on ' || temporary tablespace || ';'
from sys.dba users
Rem
Rem Reset User Passwords
Rem
select 'alter USER ' || username || ' identified by values ''' ||
password || ''';'
from sys.dba users
where username not in ('SYSTEM','SYS',' NEXT USER','PUBLIC')
and password != 'EXTERNAL'
/
Rem
Rem Create Tablespace Quotas
Rem
select 'alter USER ' || username || ' quota ' ||
decode(max bytes,-1,'unlimited',to char(max bytes/1024) ||' K') ||
' on tablespace '|| tablespace name ||';'
from sys.dba ts quotas
/
Rem
Rem Grant System Privileges
Rem
select 'grant ' || S.name || ' to ' || U.username || ';' from system privilege map S,
sys.sysauth$ P,
sys.dba users U
where U.user id = P.grantee#
Rem
Rem Grant System Roles
Rem
Select 'grant ' || X.name || ' to ' || U.username || ';' From sys.user$ X,
sys.dba users U
where X.user# IN ( select privilege#
From sys.sysauth$
connect
by grantee# = prior privilege#
and privilege# > 0
start
with grantee# in (1, U.user id )
and privilege# > 0
)
Rem
Rem Create All PUBLIC Synonyms
Rem
select 'create public synonym ' || synonym name || ' for ' ||
decode(table owner,'','',table owner||'.') || table name ||
decode(db link,'','','@'||db link) || ';'
from sys.dba synonyms
Rem
Rem Create ALL Public Database Links
Rem
select 'create public database link ' || db link || chr(10) ||
'connect to ' || username || ' identified by XXXXXX using ''' ||
host || ''';'
Rem
Rem Create Rollback Segments
Rem
select 'create rollback segment ' || segment name ||
' tablespace ' || tablespace name || chr(10) ||
'storage (initial ' || to char(initial extent) ||
' next ' || to char(next extent) || ' minextents ' ||
to char(min extents) || chr(10) ||
' maxextents ' || to char(max extents) || ') ' ||
status || ';'
Patrick Dewael <dewael.p_at_pg.com> wrote in message
news:396DDD63.269816CD_at_pg.com...
Hi,
I'm currently looking for a script that catches/re-engineers
generically all (or nearly all) objects from a certain schema for an
Oracle 8i environment. It has to include the LOB storage settings. Can
anyone help me ?
The objects necessary to be covered:
a.. CREATE USER statement
b.. tables + storage parameters
c.. indexes + storage parameters
d.. views
e.. triggers
f.. constraints
g.. grants
h.. packages/procedures and function
i.. synonyms
--Received on Wed Jul 19 2000 - 00:00:00 CDT
![]() |
![]() |