计算 UTL_FILE 创建的文件中的行数

Calculating number of rows in a file created by UTL_FILE

我有一个 PLSQL 程序包,它可以将 Oracle table 的摘录写到多个文件中。每个文件最多可以有 50000000 行。通常会创建 5 或 6 个这样的文件。我正在使用 UTL_FILE 功能来创建这些提取文件。

我需要将生成的文件名和生成文件中的行数记录到 Oracle table。

我可以记录文件名,但是如何记录导出到文件的行数?

怎么样?一个一个数。

  • 创建局部变量
  • 每次 UTL_FILE.put_line 调用后增加它
  • 完成后记录下来

我刚刚测试过,输出(DBMS_OUTPUT.PUT_LINE 的结果)看起来像

ocit_4001_1.txt: 37465 row(s)
ocit_4001_2.txt: 37464 row(s)
ocit_4001_3.txt: 37462 row(s)