I guess it is because of 'NAME' being a reseved word. This query does not hang :

UPDATE TABLE_DETAILS td SET td.EXTENT = (SELECT EXTENTS FROM DBA_SEGMENTS WHERE
SEGMENT_NAME IN (SELECT DISTINCT(SEGMENT_NAME) FROM DBA_SEGMENTS
WHERE SEGMENT_NAME = td.name));

Shiva.