oracle sql developer正在截断我的结果

时间:2010-04-08 19:10:31

标签: sql xml oracle

我正在调用这样的存储函数:

select XML_INVOICE.GENERATE_XML_DOC('84200006823') from dual;

然后查询结果显示在下面的表格中,我可以右键单击并选择“导出数据” - > XML

<?xml version='1.0'  encoding='UTF8' ?>
<RESULTS>
  <ROW>
    <COLUMN NAME="XML_INVOICE.GENERATE_XML_DOC('84200006823')" <![CDATA[<xml>yada yada</xml><morexml>...]]></COLUMN>
  </ROW>
</RESULTS>

问题是“......” - SQL Developer(Linux上的2.1.0.63)没有显示所有数据 - 它截断结果并附加省略号。这对我没用。如何让它导出我的所有数据?

4 个答案:

答案 0 :(得分:10)

我在SQL Developer 4中遇到了同样的问题。这对我有用:

{{1}}

然后重新运行查询。您现在应该能够在网格视图中看到完整的单元格,并将其导出到csv。

(OP不再使用相同的工作或使用Oracle,但这个问题是google中的第一个结果,所以希望这可以帮助人们遇到同样的问题。)

答案 1 :(得分:0)

1)将SP的结果插入表

从dual中选择XML_INVOICE.GENERATE_XML_DOC('84200006823')到schema.table;

(将只有一行)

使用exp导出表

EXP用户名/密码@ instance TABLES =(tablename)

答案 2 :(得分:0)

另一种解决方案是直接编写XML文件,参见下面的示例,并调整为适合:

CREATE OR REPLACE PROCEDURE output_xml_file 
(inFileName         Varchar2 )   --user defined prefix for file name        
 AS

            fp UTL_FILE.FILE_TYPE;   
                v_filename  VARCHAR2(150);
            v_XML_Result VARCHAR2(4000);    

BEGIN

          v_filename:=infilename||'.xml';

          fp := UTL_FILE.FOPEN('c:\pathtofolder', v_filename, 'W', 4000);

          select XML_INVOICE.GENERATE_XML_DOC(inFileName) into v_XML_Result from dual; 

          UTL_FILE.PUT_LINE(fp, v_XML_Result);
          UTL_FILE.FCLOSE(fp);

          EXCEPTION

            WHEN OTHERS THEN

              UTL_FILE.FCLOSE(fp);
              raise;
    END output_xml_file;
    /
    SHOW ERRORS;
    GRANT EXECUTE ON output_xml_file TO PUBLIC;

答案 3 :(得分:-2)

作为脚本运行(F5)而非作为声明(Ctrl + Enter)

然后输出将转到“脚本输出”窗口而不是“查询输出”,您将能够复制并粘贴它