oracle 提供的输出函数DBMS_OUTPUT.put_line()等函数,他们在输出的时候并不是直接把输出字符串打印在显示器上,而是放入到内存缓冲区中。小弟现在希望能够在存储过程完成之前就能够输出来。我是在shell脚本里写一个exec命令调用存储过程,然后把输出重定向到日志文件里,然后用tail命令看日志。结果发现如果存储过程没有执行完,日志的内容是不会更新的。从而通过查看日志来判断程序运行的进度是无法实现的。在后台里面的执行命令为
nohup 程序名.sh > 日志名.log &
查看日志的时候打
tail -f 日志名.log
内容不会实时更新。有没有类似于java或者c中的flush函数那种清除缓冲区的函数啊?或者有什么方法能够实时看到存储过程的输出,不用Toad或者调试工具,就简单的用tail命令看。