The example given below for writing text file or CSV using Text_IO package from a tabular block in Oracle Forms.
 
Suppose there is a tabular grid data block "Job_History" in your forms and you want to write a CSV on click of a button by reading whole block from top to bottom. The following is the demo screen shot:
 
Writing Text File From A Tabular Block In Oracle Forms_代码
 
You can also download this form from this link Job_History_Csv.fmb.
 
Write the following When-Button-Pressed trigger code for the "Export To CSV" button:
 
Declare
out_file text_io.file_type;
v_line varchar2(1000);
begin
out_file := text_io.fopen('C:\job_history.csv', 'w');
go_block('job_history');
-- move control to first record;
first_record;
loop
 v_line := :job_history.employee_id||','|| :job_history.start_date||','|| :job_history.end_date ||','||
           :job_history.job_id||','|| :job_history.department_id;
 text_io.put_line(out_file, v_line);
 -- move control to next record;
 if :system.last_record = 'TRUE' then
     exit;
 end if;
 next_record;
end loop;
text_io.fclose(out_file);
-- again after completion move control to first record
first_record;
end;