有时我们在开发中会遇到测试环境和开发环境数据库分开的情况,这种情况下就经常会需要在测试数据库实例中建立与开发环境实例中相同结构的表。这种情况的建表不同于同一实例中相同用户间或同一实例中不同用户之间的建表:直接可以“create table A as select *from B;”,在不同实例间调用表可以通过数据库链接(database link)来实现,具体方法如下:
1、在所要建表的用户下建立数据库链接:
--建立数据库链接
create database link odsnew
connect to east2
identified by east2
using '(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 198.198.198.8)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = gsnxods8)
)
)';
这里odsnew是数据库链接名字,第二行和第三行的east2分别是被调用的实例中的用户名和密码,第四行using之后的引号里是数据库安装目录下的“trsname.ora”中配置的实例(实例名后边等号之后的部分)。2、编写执行SQL语句:
create table RPT_BHYWXX_201507 as select * from RPT_BHYWXX@ODSNEW;
这里RPT_BHYWXX_201507为新建的表名,RPT_BHYWXX是被参照的表名,ODSNEW为数据库链接名。
本文介绍了在测试环境中如何通过数据库链接(database link)来创建与开发环境实例中用户下表结构相同的表。步骤包括在目标用户下建立数据库链接,并利用`CREATE TABLE AS SELECT`语句从远程实例复制表结构。
1012

被折叠的 条评论
为什么被折叠?



