It would be nice to have an extension to the alter table command that could be used to allocate an extent overwriting a specific block.
This would allow to quickly overwrite blocks marked as nonlogged in v$nonlogged_block, making it easier than what is documented in this note:
How to Format Corrupted Block Not Part of Any Segment (Doc ID 336133.1)
(especially when MANY blocks are marked nonlogged).
E.g.
alter table scott.s allocate extent ( datafile '...' size 64k offset '...starting block_id here...');
It comes without saying that it must prevent from overwriting existing segments/extents ^^
Best regards
--
Ludovico