我正在调用这样的存储函数:
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)没有显示所有数据 - 它截断结果并附加省略号。这对我没用。如何让它导出我的所有数据?
答案 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)
然后输出将转到“脚本输出”窗口而不是“查询输出”,您将能够复制并粘贴它