Code:
set echo off
set feed off
set verify off

select a.sid BLOCKER, ' blocks ' || b.sid BLOCKED
  from v$lock a, v$lock b
 where a.id1 = b.id1
   and a.id2 = b.id2
   and a.block = 1 
   and b.request > 0;

accept blocker prompt 'Specify blocker sid: '
accept locker prompt 'Specify blocked sid: '

set termout off
column username new_value username
column wait_obj new_value wait_obj
column wait_file new_value wait_file
column wait_block new_value wait_block
column wait_row new_value wait_row
select sid, 
       username,
       row_wait_obj# wait_obj, 
       row_wait_file# wait_file, 
       row_wait_block# wait_block, 
       row_wait_row# wait_row
  from v$session 
 where sid = &locker;
column objname new_value objname noprint
select owner ||'.'|| object_name objname
  from dba_objects
 where object_id = &wait_obj;
set termout on

prompt 
prompt &username with sid &blocker is blocking following data in &objname
select *
  from &objname
 where rowid = dbms_rowid.rowid_create( 1, &wait_obj, &wait_file, &wait_block, &wait_row );