Xml Oracle—自动导出/卸载数据
Oracle SQL Developer可以选择将查询结果的内容导出为各种格式(CSV/fixed width/Excel/XML)。有没有办法使它自动化Xml Oracle—自动导出/卸载数据,xml,oracle,export,oracle-sqldeveloper,Xml,Oracle,Export,Oracle Sqldeveloper,Oracle SQL Developer可以选择将查询结果的内容导出为各种格式(CSV/fixed width/Excel/XML)。有没有办法使它自动化 如果没有,有哪些免费工具可以让我自动导出到SQL Developer能够导出到的格式?我不知道如何自动导出SQL Developer,没有 但是,从PL/SQL生成CSV和/或固定宽度的文件(使用UTL_文件包)非常容易。Tom Kyte有一个使用PL/SQL或Pro*C的例子。使用您最喜欢的调度器可以相对容易地实现自动化 根据您对实际生成的
如果没有,有哪些免费工具可以让我自动导出到SQL Developer能够导出到的格式?我不知道如何自动导出SQL Developer,没有 但是,从PL/SQL生成CSV和/或固定宽度的文件(使用
UTL_文件
包)非常容易。Tom Kyte有一个使用PL/SQL或Pro*C的例子。使用您最喜欢的调度器可以相对容易地实现自动化
根据您对实际生成的XML的控制程度,XML输出可以以大致相同的方式实现自动化。如果您只需要有效的XML,而不关心该XML的格式,则可以使用(本示例直接来自文档)执行类似的操作
然后,您可以使用UTL_file
将result
CLOB写入一个文件,并再次使用您喜爱的调度程序来调度它
如果您只需要生成一个Excel可以打开的文件,那么您可能只需要创建一个CSV或制表符分隔的文件。Excel可以相对轻松地打开任何一种类型的文件,尽管您会得到额外的提示以接受找到的分隔符(它通常会正确地检测分隔符)
生成本机Excel输出更具挑战性。有用于生成Excel文件的PL/SQL API,例如。但我一直使用Java存储过程,它使用或生成Excel文件。显然,这需要更多的工作来实现。一旦你有了一个可以编写Excel文件的存储过程,就像其他选项一样,你可以使用你最喜欢的调度器自动调用该过程。SQL Workbench有一个非常强大的命令行工具,它是非数据库特定的我通常使用直接的SQL select语句来导出分隔文件,在crontab中计划从sqlplus调用。此工具看起来很有希望。我来看看。
DECLARE
qryCtx DBMS_XMLGEN.ctxHandle;
result CLOB;
BEGIN
qryCtx := DBMS_XMLGEN.newContext('SELECT * FROM hr.employees');
-- Set the row header to be EMPLOYEE
DBMS_XMLGEN.setRowTag(qryCtx, 'EMPLOYEE');
-- Get the result
result := DBMS_XMLGEN.getXML(qryCtx);
INSERT INTO temp_clob_tab VALUES(result);
--Close context
DBMS_XMLGEN.closeContext(qryCtx);
END;
/