Für einen Export (zur Datensicherung) kann es wichtig sein, dass Sequenzes gesichert und nach einem Restore wieder eingespielt werden müssen. Dazu habe ich ein kleines Shell-Script geschrieben:
#!/bin/bash sqlplus -SM <<- DOK system/<passwort> set lines 1000; set pages 2000; SET ECHO OFF SET FEEDBACK OFF SET HEADING OFF SET AUTOPRINT OFF SET AUTOTRACE OFF SET SHOW OFF SET VERIFY OFF select * from (select 'drop sequence '||'${1}'||'.'||Sequence_name||';' befehl from all_sequences where sequence_owner=upper('${1}') and Sequence_name=upper('${2}') union select 'create sequence '||'${1}'||'.'||Sequence_name|| ' minvalue '||Min_value|| ' maxvalue '||max_value|| ' start with '||last_number || ' increment by '||increment_by|| case when cache_size = 0 then ' nocache ' else ' cache ' || cache_size end ||' '|| case when order_flag = 'Y' then 'order' end ||' '|| case when cycle_flag = 'Y' then 'cycle' end ||';' from all_sequences where sequence_owner=upper('${1}') and Sequence_name=upper('${2}')) order by substr(befehl,8,319); exit; DOK |
Dieses Script wird auf OS-Ebene mit zwei Parametern aufgerufen:
$1: Schemaname
$2: Sequenzname
Um die Sequenzes wieder ein zu spielen, muss man nur die Ausgaben des Scripts mit dem SQL-Editor (z.B. sqlplus) ausführen.
Neueste Kommentare