如何处理外部表产生的坏文件

问题描述

我一直在服务器 Unix 上开发 shell 脚本,其中脚本运行 sql-Loader 以加载要插入到 Oracle 表中的文件,然后验证它是否生成了任何 BAD 文件在这种情况下,例如它向我发送一封带有警告的电子邮件

相反,通过使用外部表,我的主要优势是不处理任何 shell 脚本,但是因为只有在我从外部表运行 SELECT 的那一刻,服务器上可能会生成一个 BAD 文件,如何才能我可以自动检查它的存在并从 Oracle 处理它?

Oracle 10g 版

谢谢!

解决方法

使用外部表,您所做的一切都在 Oracle 中(即在数据库内)。

因此,您可以

  • 创建一个 PL/SQL 程序(匿名 PL/SQL 块或存储过程)
  • 访问外部表
  • 做你想做的事
  • 完成后,使用UTL_FILE检查日志/坏文件
  • 如果出现“错误”,请使用 DBMS_MAIL 发送电子邮件