1

我创建了一个将文本写入文件的过程,但由于某种原因,我无法通过代码创建新行,最终结果是该过程将所有内容写入同一行,直到它换行由于尺寸。这是代码的样子:

logFileHand := UTL_FILE.FOPEN('LOGS' , logName, 'A');
UTL_FILE.PUT_LINE(logFileHand, LOG_TS || '   ' || LOG_INSTANCE || '   ' || LOG_USER ||    
'   ' || LOG_PROGRAM || '   ' || LOG_LEVEL || '   ' || LOG_TEXT);
UTL_FILE.PUT_LINE(logFileHand, 'test');
UTL_FILE.FCLOSE(logFileHand);

运行此过程 1 次后,文件如下所示:

30-DEC-13 03.43.03.341466 PM 1 LPSQL TABLET_PARTY.GETSP TABLET_PARTY.GET ERR SQL 错误:100 找不到 ID 的派对详细信息:200144095test

如您所见,一切都在同一条线上,我尝试了 PUT 函数的所有变体,但没有任何帮助。有任何想法吗?提前非常感谢!

4

1 回答 1

0

您的行似乎没有被拆分,因为类 unix 的操作系统和窗口对被视为行分隔符的内容有不同的约定。有关更多详细信息,请查看此问题的答案。您有两个选项可以正确分隔行。

  1. 正确设置您的文本编辑器。即在记事本++ 中,您应该选择编辑-> EOL 转换-> 转换为Windows 格式。然后保存您的文件并重新打开它。
  2. 使您的程序使用 Windows 行分隔符编写日志文件。这种方法是有问题的。如果这些文件应该以任何方式在具有 linux 操作系统的服务器上使用,那么它应该具有本机格式。
于 2013-12-30T15:17:06.430 回答