【问题标题】:How do I call Perl modules from PL/SQL, Oracle Forms?如何从 PL/SQL、Oracle Forms 调用 Perl 模块?
【发布时间】:2011-09-28 20:12:58
【问题描述】:

我们想做的是将数据从 Oracle Forms 导出到 XLS 文件(服务器端)。我们发现 Perl 为此提供了出色的 SpreadSheet::WriteExcel 和 SpreadSheet::WriteExcelXML 模块。 这样做的好处是我们不必安装任何其他应用程序(如 MS Excel、OpenOffice)。

一种方法是连接到我的数据库、执行查询并生成 XLS 文件——一切都来自 Perl 脚本。 但是,因为在一个地方维护所有代码会更容易,有没有办法从 Oracle Forms 的 PL/SQL 代码中调用这些 Perl 模块??

谢谢

【问题讨论】:

    标签: perl plsql oracleforms


    【解决方案1】:

    自 90 年代的 4.5 以来,我不知道 oracle 形式,我认为它从那时起有所发展。

    如果您的 PL/SQL 在服务器端运行,那么您可以查看 extproc_perl http://www.smashing.org/extproc_perl/userguide.html 但我认为这可能有点麻烦——我只写过 C++ exptprocs,从来没有写过 perl。预计会出现一些动态的连接出牙问题。代码也不直接在 PL/SQL 中。您必须围绕 perl 编写一个 PL/SQL 包装器(实际上是围绕调用 perl 的 C - 但您不必担心 C)。

    更简单的解决方案(我认为您已经提到过)是让表单调用一个 perl CGI 脚本,该脚本自己连接到数据库,然后输出 excel 作为结果。

    【讨论】:

      【解决方案2】:

      从 PL/SQL 或 Oracle 表单运行外部程序非常困难:

      http://www.orafaq.com/wiki/PL/SQL_FAQ#Can_one_execute_an_operating_system_command_from_PL.2FSQL.3F

      正如@Sodved 提到的,使用 Perl CGI 脚本创建文件并将其下载给用户可能是最简单的方法。您将需要使用表单 WEB.SHOW_DOCUMENT 函数。

      【讨论】:

        【解决方案3】:

        一种解决方案是创建一个作业队列表,并让您的 Oracle Forms 代码将记录插入到该表中,以完成他们需要完成的任务。然后有一个守护进程来监视表中的新记录并执行处理以处理请求。

        您还可以使用包dbms_alertdbms_pipe 将消息发送到守护程序,同时使用或代替使用表。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2014-09-30
          • 1970-01-01
          • 1970-01-01
          • 2010-09-18
          • 1970-01-01
          • 2016-09-28
          • 2018-08-21
          • 1970-01-01
          相关资源
          最近更新 更多