Oracle has a package that allows you to write to a file. Oracle uses the concept of a directory (here “External”) that acts as a logical description of a directory. One of the properties of such directory is the physical location.
That file can be opened, written to and closed. Subsequent programme provides an example.
create or replace PROCEDURE writeEmployee as
TextRecord VARCHAR2(2000);
TextFile utl_file.FILE_TYPE;
CURSOR EmployeeList IS
SELECT EName, Sal, Comm
FROM emp e
ORDER BY EName;
TYPE EmployeeRecordType IS RECORD
(EmpName emp.EName%TYPE,
EmpSalary emp.Sal%TYPE,
Commission emp.Comm%TYPE);
EmployeeRecord EmployeeRecordType;
BEGIN
OPEN EmployeeList;
TextFile := utl_file.fopen ('EXTERNAL', 'Employees.csv', 'w', 32767);
LOOP
FETCH EmployeeList INTO EmployeeRecord;
EXIT WHEN EmployeeList%NOTFOUND;
TextRecord := EmployeeRecord.EmpName || ',' ||
EmployeeRecord.EmpSalary || ',' ||
EmployeeRecord.Commission;
utl_file.put_line (TextFile, TextRecord);
END LOOP;
CLOSE EmployeeList;
utl_file.fclose (TextFile);
EXCEPTION
WHEN OTHERS THEN
dbms_output.put_line (sqlcode);
dbms_output.put_line (sqlerrm);
END;
/