DECLARE v_device VARCHAR2 (50); v_done BOOLEAN; TYPE t_filetable IS TABLE OF VARCHAR2 (255) INDEX BY BINARY_INTEGER; v_filetable t_filetable; -- backuppiece names speichern v_maxpieces NUMBER := 1; -- Anzahl der backuppieces in backupset BEGIN -- Backupsets angeben v_filetable (1) := '+ORARECO/mydb/backup/mydb_db_20100427_1006_1'; v_filetable (2) := '+ORARECO/mydb/backup/mydb_db_20100427_1007_1'; v_maxpieces := 2; -- device anfordern v_dev := SYS.DBMS_BACKUP_RESTORE.deviceallocate (TYPE => NULL, ident => 'd1'); -- restore conversation SYS.DBMS_BACKUP_RESTORE.restoresetdatafile; -- Was soll wie angelegt werden sollen SYS.DBMS_BACKUP_RESTORE.restorecontrolfileto (cfname => '/tmp/control01.ctl'); SYS.DBMS_BACKUP_RESTORE.restorespfileto ('/tmp/spfile.ora'); -- Restore FOR i IN 1 .. v_maxpieces LOOP SYS.DBMS_BACKUP_RESTORE.restorebackuppiece (done => v_done , handle => v_filetable (i) , params => NULL ); IF v_done THEN GOTO ready_restore; END IF; END LOOP; <> -- Deallocate device SYS.DBMS_BACKUP_RESTORE.devicedeallocate; EXCEPTION WHEN OTHERS THEN DBMS_BACKUP_RESTORE.devicedeallocate; END; /