Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 使用DBMS_LOB导出Oracle APEX区域_Html_Plsql_Blob_Oracle Apex - Fatal编程技术网

Html 使用DBMS_LOB导出Oracle APEX区域

Html 使用DBMS_LOB导出Oracle APEX区域,html,plsql,blob,oracle-apex,Html,Plsql,Blob,Oracle Apex,我感兴趣的是将Oracle APEX生成的页面内容导出到外部文件,同时尽可能保留格式。最后,我想将其导出为.doc、.xls.或.pdf格式。目前,我正在使用.doc文件进行测试 目前,我正试图通过创建一个PL/SQL匿名块进程来实现这一点,该进程在按下导出按钮时执行。根据我在网上找到的一个示例,如果我在过程中使用以下代码,我可以将页面中的一个项目输出到.doc文件: DECLARE test_blob BLOB; BEGIN dbms_lob.createtempo

我感兴趣的是将Oracle APEX生成的页面内容导出到外部文件,同时尽可能保留格式。最后,我想将其导出为.doc、.xls.或.pdf格式。目前,我正在使用.doc文件进行测试

目前,我正试图通过创建一个PL/SQL匿名块进程来实现这一点,该进程在按下导出按钮时执行。根据我在网上找到的一个示例,如果我在过程中使用以下代码,我可以将页面中的一个项目输出到.doc文件:

 DECLARE
    test_blob BLOB;

    BEGIN
    dbms_lob.createtemporary(test_blob, FALSE);
   dbms_lob.open(test_blob, dbms_lob.lob_readwrite);

   DBMS_LOB.APPEND(test_blob, UTL_RAW.CAST_TO_RAW(:P4016_ITEM_NAME));



   OWA_UTIL.mime_header('application/doc', FALSE);
   HTP.p('Content-Length: ' || DBMS_LOB.getlength(test_blob));
   htp.p('Content-Disposition: attachment; filename= "text.doc"');
   OWA_UTIL.http_header_close;
   WPG_DOCLOAD.download_file(test_blob);

    dbms_lob.close(test_blob);
END;
然而,我想在我的页面上输出一些区域,其中包括表,这些表不被视为项目,据我所知,我对APEX还是非常陌生。如果在DMS_LOB.APPEND行中包含表名,则会收到一条错误消息。有人知道引用这些区域的简单方法吗

我发现的唯一解决方法是,通过封闭SQL查询的结果,在导出的文件中复制页面,SQL查询用于基于APEX页面的HTML填充HTML表格。换言之,如果我想将某些内容斜体化,我将执行以下操作:

...  
    dbms_lob.append(test_blob, UTL_RAW.CAST_TO_RAW('<html><i>'));
    dbms_lob.append(test_blob, [PARSED SQL QUERY]);
    dbms_lob.append(test_blob, UTL_RAW.CAST_TO_RAW('</i></html>'));

如果有人知道一种更简单的方法,最好是简单地引用我的页面区域,我将不胜感激。

有三种方法可以获取PDF-。 您还可以使用交互式报告,它具有导出选项。但默认情况下,它只能以HTML格式导出


这不完全是您所要求的,但您不需要编写代码。

这里有一些问题。1您希望获得页面生成的HTML,但Apex不提供对此的内置访问权限,也许在加载页面后,一些聪明的Javascript可以完成此任务;2您想在.doc中存储HTML页面,我怀疑这可能会产生奇怪的结果MS Word会读取HTML,但可能无法很好地处理CSS和javascript。假设我可以使用.HTML文件而不是.doc,并且我能够让javascript正常工作,或者只是从浏览器的开发者视图模式复制HTML,你认为这种方法可行吗?我认为值得一试。我想另一种选择是自己用PL/SQL生成页面内容,这样就可以控制内容的呈现/存储位置。据您所知,PDF中列出的三个选项中是否有任何一个需要最终用户下载任何其他软件?乍一看,它看起来不像,但我想确定一下。正如我所知,用户不必安装任何东西。