我需要访问 Oracle 中的某些数据和 SQL Server 2000 数据库中的其他数据来报告这些数据。由于各种原因,它们位于防火墙的不同端。现在我们正在研究从 sql server 到 oracle 的导出/导入,我想要一些关于最佳方法的建议......该过程需要完全自动化并每晚运行,因此排除使用SQL 开发人员工具。由于防火墙的阻碍,我也无法从我们的(oracle)端建立数据库之间的实时链接。数据需要在此过程中从星型模式转换为准备好报告的非规范化表格。
我正在考虑的是为 SQL Server 编写一个巨大的查询(我基本上已经这样做了),它将非规范化并将数据从 SQL Server 读出到一个平面文件中,使用相当于 sqlplus 的 sql server 作为计划任务,转储到一个众所周知的位置,然后在 oracle 端有一个 cron 作业,它复制文件并使用 sql loader 加载它并重建索引等。
这一切都是可行的,但非常手动。是否有一种或多种 FOSS 或标准 oracle/SQL Server 工具可以为我自动执行此操作?不可简化的复杂性是一方面的查询和另一方面的构建索引,但我很乐意不必编写 CSV 转储详细信息或 SQL 加载程序脚本,只是说将此 View 一方面转储到 CSV,然后其他截断并从 CSV 插入到此表中,而不用担心映射列名和所有其他神秘的 sqlldr voodoo...
最佳实践?想法?评论?
编辑:我的数据集中有大约 50 多个不同类型和长度的列,这就是为什么我不想写出如何生成和映射每一列的原因......
最佳答案
“数据需要在从星型模式到准备好报告的非规范化表格的过程中进行转换。”
您确实在寻找 ETL 工具。如果您没有钱,我建议您查看开源 Talend 和 Pentaho 产品。
关于sql-server - 将导出/导入从 SQL Server 迁移到 Oracle 的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2743525/