提取 table 程序 Oracle

Extract table procedure Oracle

是否可以创建任何过程以从 Oracle 数据库中提取 tables? 就像我可以 select 哪个 table 以及我想提取哪些字段,所以最后创建一个 table 的 CSV 文件。将来我也需要 oracle ERP,但现在只需要数据库。 我在一个审计项目中工作,所以现场顾问需要不断地从客户那里提取 tables,而所有这些都是手工制作的(table 每个 table,一个脚本一个脚本,那里浪费了太多时间)。所以我试图通过这种方式自动执行这些提取。

谢谢!

我可以给你想法。

创建一个 procedure 接受 Table namecomma-separated column names 作为两个输入参数,第三个 out 参数将用于传递过程的状态在调用用户的最后。

CREATE PROCEDURE FETCH_TABLE_DATA( P_IN_TABLE_NAME IN VARCHAR2,
                                   P_IN_CS_COLUMN_NAMES IN VARCHAR2,
                                   P_OUT_MESSAGE OUT VARCHAR2)

您现在可以使用动态查询创建游标,并使用类似的东西:

'SELECT ' || COLUMN_NAMES_COMMA_SEPRATED || ' FROM ' || TABLE_NAME

并使用UTL_FILE,您可以将所有数据放入文本文件。

如果成功,您可以将文件名分配给 P_OUT_MESSAGE 或者如果失败,您可以通过将错误消息分配给 P_OUT_MESSAGE[=19 来显示错误消息=]

搜索答案中使用的所有关键字,自行准备程序。

希望,它会给你正确的方向。

干杯!!

如果您使用 SQL Developer 或 Toad for Oracle,您可以简单地将 table 或整个 table 上的查询导出到 csv。

Oracle SQL 开发商: 对于不熟悉复杂 PL/SQL 存储过程的人来说,这是迄今为止导出数据的最简单方法。

一种方法是在 SQL Developer 中创建报告(有关此功能的更多信息,请参阅 Oracle 教程)并导出结果

创建报告后 运行,右键单击结果网格并从上下文菜单中选择“导出” 在下一个屏幕中 select CSV 作为格式并输入 filename.csv 和位置 您还可以通过以下方式导出单个 table:

在对象树视图中右键单击 table 名称。 Select导出。 Select 文件格式。导出数据 window 出现。 单击格式选项卡。 Select 格式为:CSV 输入文件名和位置。 单击列选项卡。 检查您要导出的列 单击 Where 选项卡并添加过滤数据所需的任何条件 单击应用。

PL/SQL: 通过 PL/SQL 导出数据的最佳方法是创建一个使用 UTL_FILE 命令的存储过程。

有关此存储过程的一个很好的示例,请参阅 oracle.com 上的这篇文章。请注意,建议对位于注释中的原始存储过程进行更改(正确处理带有保留 CSV 字符的数据引用)。

现在您可以将新的 CSV 文件上传到 SpatialKey。