【发布时间】:2010-01-25 06:39:24
【问题描述】:
我想通过 PL/SQL 脚本将 Oracle 表中的数据导出到 *.dbf 文件(如 excel)中。有代码吗?
【问题讨论】:
我想通过 PL/SQL 脚本将 Oracle 表中的数据导出到 *.dbf 文件(如 excel)中。有代码吗?
【问题讨论】:
有许多不同的方法可以做到这一点。最简单的方法是使用提供此功能的 IDE,例如 SQL Developer 或 TOAD。
如果你想从 PL/SQL 中调用它,那么就没有内置的 Oracle 函数。但是,使用 UTL_FILE 构建可以写出值分隔记录的东西相对简单。这些可以在 Excel 中获取。
请注意,如果您导出的数据包含逗号,默认分隔符 - ,(逗号是 .CSV 中的“C”)会导致问题。因此,您将需要使用数据导入向导而不是右键单击打开方式...
顺便说一句,使用.dbf 后缀可能是个坏主意。在 Oracle 文件系统中,假定的含义是数据库文件——即数据库基础设施的一部分。这只是一个惯例,但没有必要让人们感到困惑。推荐的替代品包括.csv、.dmp 或.exp。
编辑
如果您的兴趣只是导出数据以传输到另一个 Oracle 数据库,那么您应该考虑使用 Data Pump 实用程序。它带有一个 API,因此可以从 PL/SQL 中使用。或者,我们通过使用 DataPump 驱动程序声明的外部表来卸载数据。
【讨论】:
您也可以考虑使用 Oracle 的外部表功能。这实质上允许您将 CSV 文件映射到“虚拟”表,然后您可以将其插入其中(因此也可以插入文件。)
【讨论】: