Oracle - 自动导出/卸载数据
Oracle SQL Developer 可以选择将查询结果的内容导出为各种格式(CSV/固定宽度/Excel/XML)。有什么办法可以自动化吗?
如果没有,有哪些免费工具可以让我自动导出为 SQL Developer 能够导出的相同格式?
Oracle SQL Developer has an option to export the contents of a query result to various formats (CSV/fixed width/Excel/XML). Is there any way to automate it?
If not, what free tools are available that will let me automate exports into the same formats that SQL Developer is capable of exporting to?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我不知道有什么方法可以自动执行 SQL Developer 导出,没有。
但是,从 PL/SQL 生成 CSV 和/或固定宽度文件(使用
UTL_FILE
包)非常容易。 Tom Kyte 有一个使用 PL 生成 CSV 或固定宽度文件的程序示例 /SQL 或 Pro*C。使用您最喜欢的调度程序都可以相对轻松地实现自动化。XML 输出可以以大致相同的方式自动化,具体取决于您需要对实际生成的 XML 进行多少控制。如果您只需要有效的 XML 并且不关心该 XML 的格式,您可以使用 DBMS_XMLGEN 包(此示例直接来自文档)。
然后,您可以使用
UTL_FILE
将结果
CLOB 写入文件,并再次使用您最喜欢的调度程序来调度它。如果您只需要生成 Excel 可以打开的文件,您可能只需要创建 CSV 或制表符分隔文件。 Excel 可以相对轻松地打开任一类型的文件,尽管您确实需要执行额外的步骤,提示您接受它找到的分隔符(它通常会正确检测分隔符)。
生成本机 Excel 输出更具挑战性。有用于生成 Excel 文件的 PL/SQL API,例如 Jason Bennett 的 ExcelDoctypeUtils。但我总是使用使用 JExcelAPI 或 Apache POI 生成 Excel 文件。显然,这需要更多的工作来实现。一旦您有了可以写入 Excel 文件的存储过程,与其他选项一样,您就可以使用您最喜欢的调度程序自动调用该过程。
I don't know of a way to automate SQL Developer exports, no.
However, it's easy enough to generate CSV and/or fixed width files from PL/SQL (using the
UTL_FILE
package). Tom Kyte has an example of programs that generate CSV or fixed width files using either PL/SQL or Pro*C. Either can be relatively easily automated using your favorite scheduler.XML outputs can be automated in much the same way depending on how much control you need over the XML that is actually generated. If you just need valid XML and don't care about the format of that XML, you can do something like this using the DBMS_XMLGEN package (this example is straight from the documentation).
You could then write the
result
CLOB to a file usingUTL_FILE
and, again, use your favorite scheduler to schedule it.If you just need to generate a file that Excel can open, you probably just need to create a CSV or a tab-delimited file. Excel can open either type of file relatively easily though you do get the extra step of being prompted to accept the delimiter that it found (it generally detects the delimiter correctly).
Generating native Excel output is a bit more challenging. There are PL/SQL APIs for generating Excel files such as Jason Bennett's ExcelDoctypeUtils. But I've always gone with a Java stored procedure that used either the JExcelAPI or that Apache POI to generate the Excel file. This, obviously, requires a bit more work to implement. Once you have a stored procedure that can write an Excel file, as with the other options, you can automate calling that procedure using your favorite scheduler.
SQL Workbench 有一个非常强大的命令行 导出 工具,它是非数据库的具体的
SQL Workbench has a pretty powerful command line export tool which is non-database specific