转载自公司同事的整理。
在Oracle的使用中,经常会遇到将一个库中(源库)的某些表的数据导入到另一个库(目标库)的表中,最简单的方法就是在目标库中创建一个“数据库链接”,即Database Link,连接到源库中,再使用insert into语句将源库中的数据插入到目标库中。
具体操作分为三步:
- 如果目标库中没有对应的表,则先创建相应的表结构
- 在目标库中创建database link,具体方法见下面的示例1
- 使用insert into语句插入数据,见示例2
示例1:创建database link
创建db_link需要以下几个权限:
grant create database link to CCS;
grant create public database link to CCS;
grant create session to CCS;
创建方法示例:
create public database link
lk_cms327
connect to
cms327 identified by
cms327 using
'(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=CCS)(PORT=1521)))(CONNECT_DATA=(SID=ccs)(SERVER=DEDICATED)))';
其中lk_cms327是这个database link的名称,第一个cms327是访问源库的用户名,第二个cms327是访问源库的密码。
示例2:使用insert into语句插入数据
insert into t_cms_content
select * from t_cms_content@lk_cms327;
本例的作用是将lk_cms327对应的库中表t_cms_content中的数据插入到本库的t_cms_content表中。
注意oracle中的select into是用于赋值的,而不像sql server中插入数据。