Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Usenet -> c.d.o.server -> UTL_FILE - how to write > 1KB to OS file without line terminator ?
Hi All's !
My problem is following:
I try to put set of characters from DB table (Oracle 8.0.5/Windows NT
4.0+SP3)
to OS file.
My procedure like:
CREATE OR REPLACE PROCEDURE MY_PROC IS c_ount NUMBER :=0;
stat_state utl_file.file_type;
string varchar(100);
my_sqlcode number;
my_sqlerrm varchar(150);
CURSOR c1 IS SELECT MY_COLUMN from MY_TABLE;
BEGIN stat_state := utl_file.fopen ('C:\temp','out_file','a');
OPEN c1;
LOOP FETCH c1 INTO string;
EXIT WHEN c1%NOTFOUND;
utl_file.put(stat_state,string);
utl_file.fflush(stat_state);
END LOOP; CLOSE c1;
utl_file.fclose(stat_state);
if utl_file.Is_Open(stat_state) THEN
utl_file.fclose(stat_state);
end if;
dbms_output.enable;
EXCEPTION when UTL_FILE.INVALID_FILEHANDLE then
dbms_output.put_line('UTL_FILE.INVALID_FILEHANDLE !!!');
when UTL_FILE.INVALID_OPERATION then
dbms_output.put_line('UTL_FILE.INVALID_OPERATION !!!');
when UTL_FILE.WRITE_ERROR then
dbms_output.put_line('UTL_FILE.WRITE_ERROR !!!');
when UTL_FILE.INVALID_PATH then
dbms_output.put_line('UTL_FILE.INVALID_PATH !!!');
when UTL_FILE.INVALID_MODE then
dbms_output.put_line('UTL_FILE.INVALID_MODE !!!');
when UTL_FILE.READ_ERROR then
dbms_output.put_line('UTL_FILE.READ_ERROR !!!');
when UTL_FILE.INTERNAL_ERROR then
dbms_output.put_line('UTL_FILE.INTERNAL_ERROR !!!');
WHEN OTHERS THEN my_sqlcode := SQLCODE;
my_sqlerrm := SUBSTR(SQLERRM, 1, 150);
if utl_file.Is_Open(stat_state) THEN
utl_file.fclose(stat_state);
dbms_output.put_line(my_sqlcode || my_sqlerrm );
end if;
END ; And result is next -
I'm using UTL_FILE.PUT because I must get file without line separators.
May be UTL_FILE package has limit for length of line ???
Hope your help
Igor Oussoltsev Received on Mon Nov 29 1999 - 16:24:53 CST