PL / SQL vs存储过程与ORM Vs脚本语言。哪一个是编写数据迁移脚本的最佳选择?

时间:2018-04-18 16:38:05

标签: stored-procedures plsql oracle11g orm data-migration

我需要编写一个数据迁移脚本。需要使用join从某些表读取记录并将它们迁移到另一个表驻留在不同的模式中。我正在使用Oracle数据库11g。现在只有30000多条记录。 通过浏览Google,我遇到了一些术语,如PL / SQL,存储过程或使用ORM或任何脚本语言的独立应用程序。 我只想知道哪一个是编写迁移脚本的最有效方法,以及选择背后的确切优缺点。 请原谅我的英文!如果这个问题看起来多余而且无聊! .. :) 寻求你的建议。 谢谢

1 个答案:

答案 0 :(得分:1)

传输的数据不是太多;我尝试使用INSERT覆盖数据库链接;像这样的东西:

create database link dbl_rookie
  connect to remote_user
  identified by its_password
  using 'tns_admin alias for the remote database';

insert into remote_table@dbl_rookie
  (id, name, address, phone)
  (select a.id, b.name, b.address, a.phone
   from person a join details b on a.id = b.id
   where cb_active = 1
  );

除非我写错字,否则就会那么简单。

或者,您可以使用我在上面编写的相同SELECT语句使用 CTAS (创建表格选择)创建表格,如

create table to_be_moved as
  select a.id, b.name, ...;

导出此处(使用原始EXP实用程序,因为它在本地创建DMP文件)并导入那里(使用IMP效用)。如果您需要其他帮助,请说明。

或者,您甚至可以将<{1}}语句的结果压缩到TXT文件中,然后使用SQL * Loader实用程序将其加载到远程数据库中。

正如您所看到的,有很多选择,我们甚至没有放弃纯SQL(更不用说其他人可能建议的其他选项)。