## ############################################################################# ## ## Autor: Martin Zahn Akadia AG ## ## Purpose: Generieren der CREATE TABLE Statements aus Export ## ## Environment: Shell Script ## ## ############################################################################# # # create_table_from_indexfile # # 1). Export erstellen: # exp system/manager file=dbfull.dmp full=y compress=y grants=y indexes=y # 2). Indexfile erstellen: # imp system/osiris file=dbfull.dmp indexfile=file.sql # 3). Dieses Script starten: # create_table_from_indexfile file.sql # 4). Generiertes File create_tables.sql editieren # (Passwoerter, Storage-Parameter, Default-Tablespace) # 5). Datenbank neu generieren: # 6). User der Tables in Datenbank eroeffnen (create_user.sql) # 7). Tables vorkreieren: # sqlplus system/manager # @create_table # 8). Import der Datenbank (Ohne Indexe !!) # imp system/manager full=y ignore=y file=dbfull.dmp grants=y indexes=n # 9). Indexe aus Indexfile erstellen. # # sed commandos: # # "/^REM/!d" Loesche alle Zeilen die nicht ein 'REM' am Anfang # der Zeile haben # "s/^REM //" Loesche String 'REM ' # "s/^User/CONNECT/" Ersetze 'User' durch 'CONNECT' # "/rows/d" Loesche alle Zeilen mit 'rows' # "/;/a\\ Fuege nach jedem ';' ein 'DISCONNECT;' ein # DISCONNECT;"\ # "/CONNECT.*/s//&;/" Fuege ein ';' an jede Zeile die 'CONNECT' enthaelt # am Ende der Zeile an: CONNECT SYSTEM --> CONNECT SYSTEM; # # ############################################################################# echo " " echo "Edit Output-File 'create_tables.sql' with Passwords for Users:" echo " " grep "User" $1 | uniq | sed -e "s/^REM //" echo " " sed -e "/^REM/!d"\ -e "s/^REM //"\ -e "s/^User/CONNECT/"\ -e "/rows/d"\ -e "/;/a\\ DISCONNECT;"\ -e "/CONNECT.*/s//&;/" $1 > create_tables.sql echo "Output-File 'create_tables.sql' created"