用PL / SQL写入docx文件

时间:2013-02-12 19:09:39

标签: oracle plsql docx

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

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

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

谢谢;)

1 个答案:

答案 0 :(得分:3)

是的,可以不使用外部库。我只能给你一个大纲,而不是实际的代码。

首先,.docx.xlsx格式不是实际文件;他们是zip文件。使用Java存储过程可以从数据库中create a zip file。其次,其中的文件是可读文本格式,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等方式编写所有文件。

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

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