Why don't you use simple "lead" analytical fn?

Code:
SQL> select * from int;

NAME              QTY       COST
---------- ---------- ----------
A                   2         20
H                   7         24
L                   1         12

SQL> get int2
  1  select name, qty, cost,
  2         lead(cost) over ( order by name) nextcost
  3* from  int
SQL> /

NAME              QTY       COST   NEXTCOST
---------- ---------- ---------- ----------
A                   2         20         24
H                   7         24         12
L                   1         12
Tamil