将一台Oracle7数据导入到另一台9i中去

王朝oracle·作者佚名  2008-05-31
宽屏版  字体: |||超大  

两台数据库服务器:

192.168.16.38 上装有Oracle7

192.168.16.34 上装有Oracle9i

现要将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链名时,前面应加上“@”符号。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有