我在存盤程序中,從資料庫表讀取資料,呼叫utl_file的put_line向檔案中寫入資料。
檔案寫入沒有報錯,但是在檔案末尾多了個一個換行,而且,如果在下文中toSql 尾部加入order by cit_province則不會有多余的換行
個人猜測是由于oracle的快取機制導致剛好一次快取區寫滿,導致多一個換行,是否有解決方案
檔案生成結果:
不排序多了換行

排序不多換行

代碼:
toSql varchar2(3000);
linesize BINARY_INTEGER:=30000;
ifile utl_file.file_type;
dataline RECORD_SINGLE_ORDER;
Begin
i_file:=utl_file.fopen( file_loc , ’dataFile.txt’ , ’w’ , linesize);
toSql=’select CIT_CODE||chr(127)||chr(94)||CIT_PROVINCE||chr(127)||chr(94)||CIT_NAME from CITYINFO’;
Open v_cursor for toSql
Loop
Fetch v_cursor into
dataline;
Exit when
v_cursor%NOTFOUND;
Utl_file.put_line(i_file,convert(dataline.data,’AL32UTF8’),true);
End loop;
close v_cursor;
Utf_file.fclose(i_file);
END
其中:
type RECORD_SINGLE_ORDER is record(
DATA varchar2(3000)
);
create table pub_cityinfo(
cit_code char(4) not null,
cit_province char(3) not null,
cit_name varchar2(150) not null,
primaary key(cit_code)
);
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/92111.html
標籤:開發
