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

Posted

技术标签:

【中文标题】计算由 UTL_FILE 创建的文件中的行数【英文标题】:Calculating number of rows in a file created by UTL_FILE 【发布时间】:2021-03-12 11:02:41 【问题描述】:

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

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

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

【问题讨论】:

【参考方案1】:

怎么样?一一数一数。

创建一个局部变量 在每次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)

【讨论】:

以上是关于计算由 UTL_FILE 创建的文件中的行数的主要内容,如果未能解决你的问题,请参考以下文章

在不使用 UTL_FILE 的情况下从 PL/SQL 中的文件读取/写入数据

用PLSQL中的UTL_FILE包来读写文件

在没有假脱机或 utl_file 的 PL/SQL 中写入文件

UTL_FILE

utl_file.FCLOSE() 处理大文件时速度很慢

使用 UTL_FILE 脚本损坏文件