UTL_FILE - how to write > 1KB to OS file without line terminator ?

From: Igor Oussoltsev <uwd_at_uwd.baltnet.ru>
Date: Tue, 30 Nov 1999 00:25:36 +0200
Message-ID: <3842fb3e_at_news.baltnet.ru>


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 -

  • if count of putting bytes(for example 100 loops by 10 bytes (length of MY_COLUMN)) less than 1024 - everything is OK !
  • if count > 1024 bytes - I get exception UTL_FILE.WRITE_ERROR !

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 - 23:25:36 CET

Original text of this message