问题标签 [utl-file]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3077 浏览

oracle - 单次迭代后立即将内容写入 UTL_FILE

我有 PL/SQL 块,它从表函数查询,我使用游标逐记录处理它,有一些业务逻辑,最后将合格记录写入文件。

要处理的记录数高达 100 万条。总处理速度约为每分钟10000条记录。(经过少量数据测试)

现在,我需要在不同的环境 JSP 中指示处理状态。

此处写入的日志信息,在该过程完成之前不可用。所以,我无法追踪它完成了多远。有人可以帮助我吗?

0 投票
1 回答
1684 浏览

oracle10g - utl_file.put_line 不工作

我需要生成一个 XML 并将其写入文件。我使用了 utl_file.put_line。它创建文件,但没有写入任何内容。此外,它没有显示任何错误。我已经检查过我是否有权在目录上写入。代码:

0 投票
0 回答
1569 浏览

oracle - CSV 文件,其中一些双引号列包含逗号,一些非双引号列在列文本中包含逗号

很难解析包含似乎已在源系统中随机加载的列数据的 CSV 文件:

我的输入是一个包含 88 列的 CSV 文件,我需要将它加载到一个 oracle 表中。SQL 加载器会抛出错误的行(几乎是文件中的所有内容),因此这不是一个选项。我决定在 PL/SQL 过程中使用 UTL_FILE,这将使我能够灵活地解析每一行并将数据拆分为列。

CSV 中的模拟记录如下所示,第 5 个 COl 和第 7 个 COL 很难处理:

记录 1:PS-ASXGBDFEG,aOA2000x29,NULL,NULL,"899245, 892345",NULL,4-7-12:收到的发货前报告 NKGWT00065104 的密钥代码为 8269353,AQL 缺陷级别为 1/0 严重,17/10 主要和 24/14 Minor found.,23/11/2011 12:00:00 AM

记录 2:PS-ASXGANBAG,aOA2000x39,NULL,NULL,898245",NULL,22-11--11:装运前检验报告 Intertek SHIJ25252253 的关键代码 8241233。AQL 级别:0/0 关键,16/10 主要和 4/ 14 个小缺陷。由于工艺不良和螺柱未对齐,装运前报告失败。制造质量故障是一个问题;这必须随着未来的生产而改进。尺寸超出公差的这批货物在商业上是可以接受的。所有有缺陷的服装必须从散装中取出或修理。政府文件批准印刷的澳大利亚国旗和“进口许可”?Judy,2011 年 11 月 23 日上午 12:00:00

记录 3:PS-ASXGNDBAG,aOA2000x42,NULL,NULL,“7771965(黑色),7771958(白色)”,NULL,NULL,NULL

记录 4: PS-ASXGLPBAG,aOA2000x80,NULL,NULL,8272700/E,NULL,NULL,NULL

我使用了基本解析(显然失败得很惨)

我还从下面的链接中尝试了 DBMS_UTILITY.COMMA_TO_TABLE,但是如果没有适当的模式,这也没有多大帮助[在读取 CSV Oracle 存储过程 UTL_FILE 时忽略引号之间的逗号

我无法找到一种模式来提取列,因为 col5 和 col7(自由文本或 NULL)中有相当随机的数据模式。

需要帮助来解析这个..或任何替代方法将此 CSV 加载到数据库版本为 10.2 的 ORACLE 表中,或者根本不能在 PL/SQL 中完成:(

0 投票
1 回答
6478 浏览

plsql - PL/SQL 过程输出存储在文件中,然后在 Oracle 11g 中通过电子邮件发送

我有一个检查是否有新代码的程序。如果有,则将它们插入表中。并将新数据保存到 csv 或 txt 文件中并通过电子邮件发送给我。

我无法了解如何将新数据重定向到文件,甚至无法将数据作为简单文本放入电子邮件中。谢谢

0 投票
1 回答
850 浏览

oracle - PL/SQL 编写 Unicode 文件

我在 Windows 7 上使用 Oracle 11g,其国家字符集等于 AL16UTF16。

我正在尝试使用以下 PL/SQL 代码编写 3 个西里尔字母:

生成的文件长 5 个字节。如果我在 Notepad++ 中打开文件,我可以看到以下内容:DLE DC1 DC2,末尾有新行(字符 13+字符 10)。上面的代码有什么问题?

0 投票
1 回答
58285 浏览

oracle - 如何从 Pl/SQL 写入文本文件,PLS 错误 00363

我正在尝试从程序写入文件:

PACKAGE xxxxxxxx 的编译错误

所以这是我的代码,它给了我这个错误,有什么问题?

0 投票
2 回答
4595 浏览

sql - 在循环中调用 utl_file.put 时出现 UTL_FILE.WRITE_ERROR

我在我的 PL/SQL 过程中有以下代码,我utl_file.put在一个 while 循环中调用了 API_XXX.put(它调用)。l_xmldoc 是来自 getReportXML 函数的 CLOB,它返回 xml clob。

我编写的将 xml 写入文件的代码如下:

请注意,API_XXX 是我无法修改的现有包,并且此apifflushput.

API_XXX.put的部分如下(“WHICH”是第一个参数):

API_XXX.new_line就像(LINES 是要写入的行数):

我注意到我客户的 put/new_line 过程有时会在我的客户的 UTL_FILE.WRITE_ERRORwhile 循环中因未知原因引发(可能是由于 l_length 太大(最多 167465))。

我阅读了Oracle PL/SQL UTL_FILE.PUT 缓冲 。我发现这是同样的原因,我的 l_xmldoc 非常大,当我循环它时,我发现它没有新的行终止符,所以即使我每次都 fflush,缓冲区也高达 32767。

那么,我应该如何将 l_xmldoc 转换为带有新行终止符的 varchar。

PS:我确认我的客户使用的是 Oralce 11g

0 投票
1 回答
3039 浏览

sql - 将 DBMS.OUTPUT.put_line 的输出写入指定的公共位置,如桌面

我有一连串的电话,例如:

DBMS_OUTPUT.put_line(v_1||','||v_2);

我只读取了数据库的权限,并设想将上述语句中的输出写入我以后可能读取的所有计算机上的一个公共位置(使用 VBA)。

我找到了 Oracle 似乎支持的UTL_FILE包,但我无法理解如何让它做我想做的事。

有人可以为我提供一个简单的示例,说明如何同时使用该put_line方法和UTL_FILE包来写入通用位置,例如计算机桌面?

0 投票
1 回答
3206 浏览

sql - 尝试使用 utl_file 方法读取文件

我正在尝试查看此文件是否存在。但我收到此错误消息。我已经检查了我获得的特权。但是这个文件在服务器端所以我缺少什么

错误:

ORA-29283:无效的文件操作
ORA-06512:在“SYS.UTL_FILE”,第 536 行
ORA-29283:无效的文件操作
ORA-06512:在第 5 行

0 投票
1 回答
707 浏览

oracle - WRITE_ERROR、Oracle PL/SQL 的常见原因是什么?

最近,我遇到了很多UTL.FILE.WRITE_ERROR,但文档并没有解释所有原因。

例如:Oracle PL/SQL UTL_FILE.PUT 缓冲描述了一种导致此问题的情况,即当我们调用put(即使我们fflush在每个字符之后)写入没有换行符的文件时。

希望总结出这个错误的常见原因。谢谢!