Hi Bruno,
my solution is:
- -------------------------------------
PROCEDURE put
- -------------------------------------
( p_filehandle IN File_Type
, p_text IN VARCHAR2
)
IS
v_text VARCHAR2(1023); -- wegen ORACLE-BUG
v_len NUMBER;
i INTEGER;
BEGIN
--
i := 1;
v_text := SUBSTR ( p_text, 1, 1023);
v_len := LENGTH ( v_text);
--
UTL_FILE.PUT( p_filehandle, v_text);
--
WHILE v_len < LENGTH( p_text)
LOOP
v_text := SUBSTR( p_text, v_len + 1, 1023);
v_len := LENGTH(v_text) + i*1023;
i := i + 1;
--
UTL_FILE.PUT( p_filehandle, v_text);
--
END LOOP;
--
UTL_FILE.FFLUSH( p_filehandle );
--
EXCEPTION
WHEN UTL_FILE.INVALID_FILEHANDLE
THEN
RAISE_APPLICATION_ERROR
( -20104
, 'SY_FILE.Put: Invalid File Handle'||CHR(10)||SQLErrM
);
WHEN UTL_FILE.INVALID_OPERATION
THEN
RAISE_APPLICATION_ERROR
( -20105
, 'SY_FILE.Put: Invalid Operation'||CHR(10)||SQLErrM
);
WHEN UTL_FILE.WRITE_ERROR
THEN
RAISE_APPLICATION_ERROR
( -20106
, 'SY_FILE.Put: Write Error'||CHR(10)||SQLErrM
);
END put;
- -------------------------------------
PROCEDURE new_line
- -------------------------------------
( p_filehandle IN File_Type
, p_zeilen IN NATURAL := 1
)
IS
BEGIN
--
UTL_FILE.NEW_LINE( p_filehandle, p_zeilen );
--
EXCEPTION
WHEN UTL_FILE.WRITE_ERROR
THEN
RAISE_APPLICATION_ERROR
( -20107
, 'SY_FILE.New_Line: Write Error'
);
END new_line;
- -------------------------------------
PROCEDURE put_line
- -------------------------------------
( p_filehandle IN File_Type
, p_text IN VARCHAR2
)
IS
BEGIN
--
put( p_filehandle, p_text );
--
new_line( p_filehandle );
--
END put_line;
Hope this helps.
BTW, did you notice, that your posting was multiple?
Reinhard
Received on Tue May 25 1999 - 09:37:17 CDT