文件重写——急需答案

目的是编写数据文件,在文件头中写入数据类型和数据记录条数,文件体中写入需要的数据。所生成文件为.txt文档。由于所需数据实在些文件的过程中提取并筛选的,所以在写文件头的过程中无法预先计算出记录条数,而是写完文件体后重新改写文件头。
请问:是否能够重新写文件,请提供成功的重写文件的例子。
我在oracle 9i 文档中查找到fseek指针定位函数,但他仅能用在文件读的方式下,也就是说只有文件以读的方式打开时才能用此函数。
我的测试代码:
declare
v_FileDir varchar2(50):='/report/abstraction/MoneyLaundering';
v_FileHandle utl_file.file_type;
v_FileName varchar2(40):='';
begin
v_FileName := 'test' ¦ ¦'-' ¦ &brvbarto_char(i) ¦ ¦'.txt';
v_FileHandle:=utl_file.fopen(v_FileDir,v_FileName,'r'); -- 此种情况下fseek函数可用
utl_file.fseek(v_FileHandle,1,5);
end;
请各位高手相助!
---------------------------------------------------------------

基本思路
select记录到数组里面
然后遍历数组写入文本文件

楼主并没有把你的需求将清楚

楼主是要把select出来的记录写到文本文件里吗?

---------------------------------------------------------------

我需要生成的是文本文件。在存储过程的最初是用游标从数据库中提取数据,在存储过程中在对游标中的结果集一一筛选,得到真正需要的数据——这一筛选过程是必需的。

=============================================================
这并不意味着取数据的时候就写文件,你可以用个数组来临时保存这些数据,最后根据得到的记录数来回填数组的第一个元素,然后再将数组的所有元素顺序写入文件中。

另一种方法:

取数据的时候就写入文件中,然后生成一个新的文件,在新文件中写入记录数,然后使用fcopy函数,把老文件中的内容拷到新文件中。

Published At
Categories with 数据库类
Tagged with
comments powered by Disqus