Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2087880
  • 博文数量: 1647
  • 博客积分: 80000
  • 博客等级: 元帅
  • 技术积分: 9980
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-13 15:15
文章分类

全部博文(1647)

文章存档

2011年(1)

2008年(1646)

我的朋友

分类:

2008-10-28 18:34:26


  两台数据库:
  
  192.168.16.38 上装有7
  
  192.168.16.34 上装有9i
  
  现要将16.38上的数据导入到16.34上的数据库中去,不用imp和exp,如何做?
  
  1、现用PowerDesigner7.5导出16.38上的基表结构,包括视图、函数、触发器、序列等。
  
  Tools -> Export User Objects -> Export
  
  2、将导出的脚本在16.34的sqlplus中运行,建立基表结构。
  
  3、vi $ORACLE_HOME/network/admin/tnsnames.ora
  
  配置16.34上的tnsnames.ora文件,使16.34上的sqlplus能够链接到16.38上的Oracle7数据库,假设链接到16.38的TNS name是ctgpc1638,加上以下代码:
  
  ctgpc1638 =
  (DESCRIPTION =
  (ADDRESS_LIST =
  (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.16.38)(PORT = 1521))
  )
  (CONNECT_DATA =
  (SID = ORCL)
  )
  )
  
  4、来16.34上运行sqlplus,建立数据库链:
  
  create database link from1638
  //from1638:DB链名,使用时用它,名字可任取。
  connect to ctpgc identified by comdev2399
  //ctgpc和comdev2399是远程数据库的用户名和密码
  using 'ctpgc8834'
  //连接串,即在16.34上tnsnames.ora中配置的TNS name
  /
  
  5、在16.34的sqlplus中键入:
  
  select 'insert into '||tname||' select * from '||tname||'@from1638;' from tab;
  
  6、将屏幕结果copy下列,放到Ultraedit中备用,整理成纯脚本,类似如下所示:
  
  insert into CODE_TABLES select * from CODE_tables@from1638;
  
  7、将上面生成的脚本语句粘贴到16.34上的sqlplus中去执行,就可以插入数据了。
  
  8、上面的脚本中可能包含有视图的数据插入语句,这时不用视图的语句,只需用另外的脚本导入视图结构即可,因为它是视图,不用插入数据。
  
  9、关于数据库链的几点说明:
  
  1)使用数据库链操作时,应先建立数据库链。
  
  2)使用时,应使用DB链名,而不是连接串。
  
  3)使用DB链名时,前面应加上“@”符号。
【责编:admin】

--------------------next---------------------

阅读(320) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~