Oracle SQLPLUS:立即刷新 SPOOL 输出

Oracle SQLPLUS: immediately flush SPOOL output

我正在将我的 SQLPLUS 会话记录到一个文件中。

SPOOL mylog.txt

但是如果我执行带有短输出的命令

例如

SELECT * FROM DUAL;

它不会立即放入文件中。它需要一些命令。如果它是一个具有大量输出的命令,它会立即发生。

所以我认为这是在写入文件之前需要填充的某种缓冲区。

我试过了

SET FLUSH ON

但没有成功。

如何让 SPOOL 立即刷新缓冲区?

你不能(据我所知)。

数据以 8K 块为单位进行假脱机处理(通常,正如 Ask Tom 所说),因此,在您填满缓冲区(或发出 spool off)之前,您不会什么都看不到。