rownum은 데이터에 고정된 값이 아니라 select되는 값에 따라서 동적으로 부여되는 번호입니다. 다건의 데이터중 2번째 데이터를 가져오기 위해서 where절에 rownum='2'를 했을때, 첫번째 데이터는 rownum이 1이므로 제외되지만, 두번째 데이터역시 rownum이 1이므로 가져올 수 없죠. (rownum 1이 없이는 결코 2에 도달할 수 없기때문이죠)
만약, 두번째 데이터만을 가지고 오고 싶다면, 서브쿼리를 사용하여 rownum을 각 데이터에 고정시켜버리면됩니다.
select * from (select rownum, * from table) a where a.rownum='2'