Is it impossible to iterate table rows in Oracle PL/SQL without using a cursor?
Valid cursor attribute name is one of  %NOTFOUND, %FOUND, %ROWCOUNT, %ISOPEN. There is no %rownum attribute . In your question you use implicit cursors, so it should be
 sql%rowcount.