Oracle PL/SQL UTL_FILE.PUT缓冲

Dus*_*tin 5 oracle plsql put fflush utl-file

我正在从Oracle存储过程编写一个大于7MB的大文件,并且要求在每条记录的末尾没有行终止字符(没有回车符/换行符).

我已经使用UTL_FILE.PUT编写了一个存储过程,并且我正在使用UTL_FILE.FFLUSH跟随每次调用UTL_FILE.PUT.虽然我正在进行FFLUSH调用,但是当我写入超过缓冲区大小(设置为max 32767)的点时,此过程会出现写入错误.如果我用PUT_LINE调用替换PUT调用,该过程可以正常工作.

如果没有换行符,是否无法写入超过缓冲区大小的内容?如果是这样,有解决方法吗?

Oll*_*lie 4

达斯汀,

Oracle 文档位于: http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14258/u_file.htm#i1003404

说明: FFLUSH 将挂起的数据物理写入由文件句柄标识的文件。通常,写入文件的数据会被缓冲。FFLUSH 过程强制将缓冲数据写入文件。数据必须以换行符终止。

最后一句话是最相关的。

在搜索结果文件中的行终止符并将其删除之前,您是否不能使用 UTL_FILE.PUT_LINE 写入数据?

只是一个想法....