Xml Oracle—自动导出/卸载数据

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的例子。使用您最喜欢的调度器可以相对容易地实现自动化 根据您对实际生成的

Oracle SQL Developer可以选择将查询结果的内容导出为各种格式(CSV/fixed width/Excel/XML)。有没有办法使它自动化


如果没有,有哪些免费工具可以让我自动导出到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;
/