oracle 数据库之间 表数据的 迁移

前端之家收集整理的这篇文章主要介绍了oracle 数据库之间 表数据的 迁移前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

主要是 需要将 正式环境的数据库 和测试环境的数据库的 表 数据同步一下,方便测试。 这样的效果, 可以使用 数据库的 备份 , exp imp 等其他的方式, 可是这样的方式, 需要 在 电脑里面 安装 oracle 客户端, 本人比较懒。 所以 就使用这样的方式了。 其实 速度不慢, 而且 简单快速

-- 创建 连接 	
   create database link dblink_newTest  
  connect to bms identified by bms 
  using '(DESCRIPTION =  
    (ADDRESS_LIST =  
      (ADDRESS = (PROTOCOL = TCP)(HOST = 10.12.21.81)(PORT = 1521))  
    )  
    (CONNECT_DATA =  
      (SERVICE_NAME =orcl)  
    )  
  )';  
  	
  -- SELECT * FROM HR_EFF_LEADER_HI@dblink_newTest 远程查询  其他库的 数据 
  --备份, 需要将 原来的表的数据 删除 (看具体情况)
    INSERT INTO HR_EFF_LEADER_HI  SELECT * FROM HR_EFF_LEADER_HI@dblink_newTest

我测试过了 , 如果想 要 多表 的 话, 百度 一下 , 没有 解决的办法。。。反正目前我是不知道 有什么多表的方式。

我的想法是:

-- 多表 
     INSERT INTO HR_EFF_LEADER_HI,HR_EFF_LEADER  SELECT * FROM HR_EFF_LEADER_HI,HR_EFF_LEADER@dblink_newTest
     
     
     -- 模糊查询表名,然后  循环 -- 将 对应的表的 内容删除 -- 然后  执行 单表的 备份 即可。
select table_name from user_tables where table_name like '%HR_EFF_LEADER%'

因为单表 可以解决, 如果是 多表的话, 自己可以 写一个 数据库函数, 模糊查询出来 或者 定义的函数 需要迁移的某些 表, 然后 循环 执行 单表的 上面的 数据迁移的方式即可。 或者 说 使用 程序 Java 或者其他语言也可以的。如果不需要 写 数据库自定义函数的话。

本人 从来没有 试过些 sql 函数, 虽然看得懂别人的函数, 可是自己写,搞了半天 都 报语法错误sql函数 出错了,调试 很麻烦, 错误提示 很难理解 。 反正我是 使用 Java代码 写一个 方法 多表 执行的, 而且 可以 很方便 的 写 一些 自己想要的效果, 如果用sql函数,头疼啊。。。DBA 或者大神 可以 自己 写sql函数啊, 应该更快吧。。

猜你在找的Oracle相关文章