Я разработал ORA_EXCEL www.oraexcel.com , пакет Oracle PL / SQL, который может создавать документы Excel с листами.
Код, который будет создавать документ Excel с данными на основе вашеговопрос:
BEGIN
ORA_EXCEL.new_document;
-- Sheet 1
ORA_EXCEL.add_sheet('Sheet1');
ORA_EXCEL.add_row;
ORA_EXCEL.set_cell_value('A', 'Id');
ORA_EXCEL.set_cell_value('B', 'First name');
ORA_EXCEL.set_cell_value('C', 'Last name');
FOR rec IN(SELECT * FROM table1) LOOP
ORA_EXCEL.add_row;
ORA_EXCEL.set_cell_value('A', red.id);
ORA_EXCEL.set_cell_value('B', red.first_name);
ORA_EXCEL.set_cell_value('C', red.last_name);
END LOOP;
--Sheet 2
ORA_EXCEL.add_sheet('Sheet2');
ORA_EXCEL.add_row;
ORA_EXCEL.set_cell_value('A', 'Id');
ORA_EXCEL.set_cell_value('B', 'First name');
ORA_EXCEL.set_cell_value('C', 'Last name');
FOR rec IN(SELECT * FROM table2) LOOP
ORA_EXCEL.add_row;
ORA_EXCEL.set_cell_value('A', red.id);
ORA_EXCEL.set_cell_value('B', red.first_name);
ORA_EXCEL.set_cell_value('C', red.last_name);
END LOOP;
-- Sheet 3
ORA_EXCEL.add_sheet('Sheet3');
ORA_EXCEL.add_row;
ORA_EXCEL.set_cell_value('A', 'Id');
ORA_EXCEL.set_cell_value('B', 'First name');
ORA_EXCEL.set_cell_value('C', 'Last name');
FOR rec IN(SELECT * FROM table3) LOOP
ORA_EXCEL.add_row;
ORA_EXCEL.set_cell_value('A', red.id);
ORA_EXCEL.set_cell_value('B', red.first_name);
ORA_EXCEL.set_cell_value('C', red.last_name);
END LOOP;
-- EXPORT_DIR is Oracle directory
ORA_EXCEL.save_to_file('EXPORT_DIR', 'example.xlsx');
END;