Search notes:

Oracle: dbms_sql.define_column

dbms_sql.define_column is needed in queries (select statements) for each selected column.
The function returns the actual number of rows that were fetched.
…
  while dbms_sql.fetch_rows(cur) > 0 loop
        …
  end loop;
…

See also

Use describe_columns to determine column names and data types.
dbms_sql

Index