问题描述
嗨,
我有以下格式的这个查询 (示例查询)。所以这个查询的输出是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;
我有以下格式的这个查询 (示例查询)。所以这个查询的输出是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进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




