I am trying to create a flat file. I included my pl/sql code below also I'm just a starting to learn pl/sql. I found some examples on this web site and in a oracle pl/sql book but can't fix my problem. The program runs with no errors but does not produce a flat file on my c drive. Any help would be appriciated.
set serveroutput on;
create or replace procedure itt_fixed_file as
----------------Storage Variables ------------------------
n number := 0; error_msg VARCHAR2(300) := SQLERRM;
--------------UTL FILE Variables----------------------
p_file_name VARCHAR2(20); p_file_dir VARCHAR2(70);
v_file_handle UTL_FILE.FILE_TYPE;
----------------------Cursor-------------------------------
CURSOR itt_rec IS
SELECT empl_id
FROM empl;
file_rec itt_rec%ROWTYPE;
----------------Main Program Logic---------------------
begin
DBMS_OUTPUT.ENABLE(50000);
p_file_name := 'outputfile.txt';
p_file_dir := 'c:';
v_file_handle := UTL_FILE.FOPEN(p_file_dir, p_file_name, 'w',1000);
FOR file_rec IN itt_rec
LOOP
UTL_FILE.PUT_LINE(v_file_handle,file_rec.empl_id);
message('loopping');
END LOOP;
UTL_FILE.FCLOSE(v_file_handle);
--
EXCEPTION --Error Handler
WHEN TOO_MANY_ROWS THEN
dbms_output.PUT_LINE('Too Many Rows');
WHEN NO_DATA_FOUND THEN
dbms_output.PUT_LINE('No Data Found');
WHEN utl_file.invalid_path THEN
RAISE_APPLICATION_ERROR(-20000, 'utl_file.invalid_path');
WHEN utl_file.invalid_mode THEN
RAISE_APPLICATION_ERROR(-20000, 'utl_file.invalid_mode');
WHEN utl_file.invalid_filehandle THEN
RAISE_APPLICATION_ERROR(-20000, 'utl_file.invalid_filehandle');
WHEN utl_file.invalid_operation THEN
RAISE_APPLICATION_ERROR(-20000, 'utl_file.invalid_operation');
WHEN utl_file.read_error THEN
RAISE_APPLICATION_ERROR(-20001, 'utl_file.read_error');
WHEN utl_file.write_error THEN
RAISE_APPLICATION_ERROR(-20001, 'utl_file.write_error');
WHEN utl_file.internal_error THEN
RAISE_APPLICATION_ERROR(-20001, 'utl_file.internal_error');
WHEN OTHERS THEN
dbms_output.put_line(SubStr('Error '||TO_CHAR(SQLCODE)||': '||SQLERRM, 1,255));
END;
/
set serveroutput on;
create or replace procedure itt_fixed_file as
----------------Storage Variables ------------------------
n number := 0; error_msg VARCHAR2(300) := SQLERRM;
--------------UTL FILE Variables----------------------
p_file_name VARCHAR2(20); p_file_dir VARCHAR2(70);
v_file_handle UTL_FILE.FILE_TYPE;
----------------------Cursor-------------------------------
CURSOR itt_rec IS
SELECT empl_id
FROM empl;
file_rec itt_rec%ROWTYPE;
----------------Main Program Logic---------------------
begin
DBMS_OUTPUT.ENABLE(50000);
p_file_name := 'outputfile.txt';
p_file_dir := 'c:';
v_file_handle := UTL_FILE.FOPEN(p_file_dir, p_file_name, 'w',1000);
FOR file_rec IN itt_rec
LOOP
UTL_FILE.PUT_LINE(v_file_handle,file_rec.empl_id);
message('loopping');
END LOOP;
UTL_FILE.FCLOSE(v_file_handle);
--
EXCEPTION --Error Handler
WHEN TOO_MANY_ROWS THEN
dbms_output.PUT_LINE('Too Many Rows');
WHEN NO_DATA_FOUND THEN
dbms_output.PUT_LINE('No Data Found');
WHEN utl_file.invalid_path THEN
RAISE_APPLICATION_ERROR(-20000, 'utl_file.invalid_path');
WHEN utl_file.invalid_mode THEN
RAISE_APPLICATION_ERROR(-20000, 'utl_file.invalid_mode');
WHEN utl_file.invalid_filehandle THEN
RAISE_APPLICATION_ERROR(-20000, 'utl_file.invalid_filehandle');
WHEN utl_file.invalid_operation THEN
RAISE_APPLICATION_ERROR(-20000, 'utl_file.invalid_operation');
WHEN utl_file.read_error THEN
RAISE_APPLICATION_ERROR(-20001, 'utl_file.read_error');
WHEN utl_file.write_error THEN
RAISE_APPLICATION_ERROR(-20001, 'utl_file.write_error');
WHEN utl_file.internal_error THEN
RAISE_APPLICATION_ERROR(-20001, 'utl_file.internal_error');
WHEN OTHERS THEN
dbms_output.put_line(SubStr('Error '||TO_CHAR(SQLCODE)||': '||SQLERRM, 1,255));
END;
/