0

我实际上正在为 Oracle 数据库审计目的编写 PL/SQL 包(包含总 RAM、操作系统版本、内存比率等信息),我想将此审计的输出写入 docx 文件(或任何文件Microsoft Office 2007 可读和可编辑的格式)。我怎样才能做到这一点 ?

我找到了一种方法,但这并不是我想要的,因为您必须使用带有标签的模板并将值逐一绑定到这些标签(http://ora-00001.blogspot.fr/2011/02/working-with- office-2007-ooxml-files.html )。此外,我必须在审计之前部署一个包,这并不总是可能的。

如果我可以在没有外部软件包(第三方)的情况下做到这一点,那就太酷了!

谢谢 ;)

4

1 回答 1

3

是的,这可以在不使用外部库的情况下完成。我只能给你一个大纲,而不是实际的代码。

首先,.docx,.xlsx格式不是实际的文档;它们是 zip 文件。可以使用 Java 存储过程从数据库创建一个 zip 文件。其次,其中的文件是可读的文本格式,XML等。

如果我们看一下我创建的一个,您就会明白我的意思。

[19:28:27]\\ELZAR\h:\ unzip -l blah.docx
Archive:  blah.docx
 Length    Date    Time    Name
 ------    ----    ----    ----
   2387  01-01-80  00:00   [Content_Types].xml
    590  01-01-80  00:00   _rels/.rels
   1880  01-01-80  00:00   word/_rels/document.xml.rels
 107400  01-01-80  00:00   word/document.xml
   2460  01-01-80  00:00   word/footer2.xml
   1428  01-01-80  00:00   word/endnotes.xml
   1434  01-01-80  00:00   word/footnotes.xml
   2624  01-01-80  00:00   word/header1.xml
    289  01-01-80  00:00   word/_rels/header1.xml.rels
   2497  01-01-80  00:00   word/footer1.xml
2765888  01-01-80  00:00   word/media/image1.emf
   7076  01-01-80  00:00   word/theme/theme1.xml
   4600  01-01-80  00:00   word/settings.xml
    363  01-01-80  00:00   word/_rels/settings.xml.rels
  25836  01-01-80  00:00   word/styles.xml
    341  01-01-80  00:00   customXml/itemProps1.xml
  54486  01-01-80  00:00   word/numbering.xml
    296  01-01-80  00:00   customXml/_rels/item1.xml.rels
    218  01-01-80  00:00   customXml/item1.xml
    808  01-01-80  00:00   docProps/core.xml
   2786  01-01-80  00:00   word/fontTable.xml
   2826  01-01-80  00:00   word/webSettings.xml
  26589  01-01-80  00:00   word/stylesWithEffects.xml
   1025  01-01-80  00:00   docProps/app.xml
 ------                    -------
3016127                    24 files

由于这些都是普通文件,您可以使用诸如UTL_FILE之类的东西来编写它们。

我会认真考虑您输出到 a 的动机.docx;这并不容易,但是是的;这是可能的。

为什么不简单地将信息存储在数据库中并根据该信息创建报告,例如,您可以通过电子邮件发送给自己。你的生活会轻松很多。

于 2013-02-12T19:33:24.950 回答