When oracle query engine assigns rownum to a row, Oracle starts at 1 and only only increments the value when a row is selected, that is, when all conditions in the WHERE clause are met..
since your query is trying to get directly rownum =2 , its not returning any rows, whereas rownum=1 works because the starting number itself is 1.
sELECT * FROM DETAILS where ROWNUM=2
Queries which has rownum = 1 or rownum <=10 works, whereas queries like rownum=2 or rownum=3 or rownum > 10 will not work.