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