Oracle - 自动导出/卸载数据

tgx*_*iii 7 oracle export oracle-sql-developer

Oracle SQL Developer 有一个选项可以将查询结果的内容导出为各种格式(CSV/固定宽度/Excel/XML)。有没有办法让它自动化?

如果没有,有哪些免费工具可以让我自动导出为 SQL Developer 能够导出的相同格式?

Ker*_*tts 8

有多种方法可以从 Oracle 导出数据并自动执行该功能。不过,请务必准确了解数据导出的用途。如果是用于系统之间的互操作,则以您的接收系统可以理解的格式导出。如果是出于备份目的,请使用 exp/expdp(数据泵)方法,因为数据库备份需要存储的不仅仅是数据。(更好的是,只需使用 RMAN。但我知道许多 DBA 也喜欢定期进行完整的数据库导出。)

您可以使用多种工具来完成此操作,TOAD 就是您想到的工具。它有一个强大的数据导出工具,支持调度。有一个免费版本可用,但我不确定它是否具有调度功能。不过值得一试。

或者,使用现有的工具:SQL*PLUS、PL/SQL 和 cron(如果运行 Windows,则使用 Windows 调度程序)。有关如何编写将表导出到 CSV 文件的 PL/SQL 例程的很好示例,请参阅http://asktom.oracle.com/pls/asktom/f?p=100:11:0:::: p11_question_id:88212348059。如果您使用一个过程,您可以从 Oracle 自己的作业调度程序中对其进行调度。

您也可以纯粹使用 SQL*PLUS 做类似的事情(无需编写过程),但它不是那么灵活,但对于您想要的,它可能正是您所需要的。SQL*PLUS 也很容易编写脚本,因此您可以随时通过 cron/Windows 调度程序调用它。

SQL*PLUS 本身可以很好地创建固定宽度的报告,但也可以创建 HTML 和 CSV。XML 可能需要某种程序,但我不是这里的导出,所以 SQL*PLUS 在这里可能并不完美(不过,它输出到 HTML,所以这可能已经足够了)。如果导出到 Excel,请记住当前版本使用 XML 作为它们的文件格式,这使事情变得简单(一方面)而另一方面却很痛苦(例如需要事先知道您将在输出文件中包含多少行) )。

无论如何,通过一点工作和两三个工具的组合,您应该能够按照您想要的任何时间表以您想要的任何格式导出您的数据。

希望有帮助。