暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 如何提取xml格式的巨大结果集作为xml文件

askTom 2017-10-16
534

问题描述

嗨,

我有以下格式的这个查询 (示例查询)。所以这个查询的输出是xml格式的。并且当我在TOAD上运行此查询时,我看到输出显示为 (hugclob),并且该CLOB的大小预计将接近2gb。当我试图将其保存为xml文件时,它需要大量时间来加载,但随后显示为空。看起来像是读取错误。
但是至少在TOAD上我可以看到输出,但是在SQLPLUS或SQLDeveloper上,我什至看不到此输出。
当我在where子句中更改过滤器以将输出拆分为多个文件时,我能够将输出保存为TOAD xml文件。但是,当尝试将输出作为一个文件获取时,无法保存输出文件。
所以我想我可以将这个输出作为xml文件写入文件系统,而不是显示为TOAD的输出,然后将TOAD的输出保存为xml文件,所以文件大小无关紧要。
我尝试使用utl_file选项 。。。。。 但是由于某种原因 。。。。 文件写出但从未完成。

有人可以帮助我使用UTL_FILE或任何其他更好的方法来编写查询,以将此输出写入文件系统,而不是输出到TOAD。

用圆柱
AS (选择XMLAGG (
XMLELEMENT (
“圆柱”,
xmlattributes (将 _id压缩为 “id”),
XMLFOREST (。。。。。。。。)
作为xml
从表上,
表b
AS (选择XMLELEMENT (






作为xml
从p区
交叉连接表b
交叉连接表
交叉连接表
交叉加入tablee;

专家解答

也许试试这个?

SQL> declare
  2    v xmltype;
  3  begin
  4    SELECT   XMLAGG(XMLELEMENT("columna",x))
  5    into     v
  6    from ( select level x from dual connect by level <= 100000 );
  7
  8    DBMS_XSLPROCESSOR.CLOB2FILE(v.getclobval(),'TEMP','my.xml');
  9  end;
 10  /

PL/SQL procedure successfully completed.

SQL> host dir c:\temp\my.xml
 Volume in drive C is OS
 Volume Serial Number is 9CB0-0212

 Directory of c:\temp

17/10/2017  09:14 AM         2,388,895 my.xml


「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论