使用我的以下PLSQL块,我在文件末尾会遇到换行符。我的期望是没有换行。
DECLARE
v_MyFileHandle UTL_FILE.FILE_TYPE;
BEGIN
v_MyFileHandle := UTL_FILE.FOPEN('MY_DIREC','HELLO.TXT','a');
UTL_FILE.PUT(v_MyFileHandle, '1');
UTL_FILE.FCLOSE(v_MyFileHandle);
END;
上面的块输出一个看起来像的文件:
1 [LF]
DECLARE
v_MyFileHandle UTL_FILE.FILE_TYPE;
BEGIN
v_MyFileHandle := UTL_FILE.FOPEN('MY_DIREC','HELLO.TXT','a');
UTL_FILE.PUT(v_MyFileHandle, '1');
UTL_FILE.PUT(v_MyFileHandle, '2');
UTL_FILE.FCLOSE(v_MyFileHandle);
END;
上面的块将生成一个类似于:
的文件12 [LF]
如何阻止文件末尾的换行?
答案 0 :(得分:1)
尝试DBMS_XSLPROCESSOR.CLOB2FILE
作为解决方法。它不会在Unix上创建[LF],在文件末尾的Windows上创建[CR] [LF]。
DECLARE
v_myClob CLOB := '1';
BEGIN
DBMS_XSLPROCESSOR.CLOB2FILE( v_myClob, 'MY_DIREC', 'HELLO.TXT');
END;
答案 1 :(得分:0)
经过广泛的谷歌搜索后,我发现这可以使用" wb"用于字节模式和put_raw。
sBufToWrite := 'line1' || chr(13) || chr(10) || line2' || chr(13) || chr(10) || 'line3';
sFileName := 'testfile.txt';
out_file := utl_file.fopen('DATA_DIRECTORY', sFileName, 'wb');
utl_file.put_raw(out_file, utl_raw.cast_to_raw(sBufToWrite));
utl_file.fclose(out_file);