我在A库有一个a表
现在想把a表的数据移到B库的b表去但是a表里的字段名或字段数和b表的不完全一样
请问我应该怎么个导入法?我现在用的是pl/sql导出表,然后手动改完字段后,再insert into到b表里,可是这样感觉太慢,有没有比较方便的方法?像这种语法能解决吗?
INSERT INTO 表A(字段名1, 字段名2, ……) SELECT (字段名1, 字段名2, ……) FROM 表B
现在想把a表的数据移到B库的b表去但是a表里的字段名或字段数和b表的不完全一样
请问我应该怎么个导入法?我现在用的是pl/sql导出表,然后手动改完字段后,再insert into到b表里,可是这样感觉太慢,有没有比较方便的方法?像这种语法能解决吗?
INSERT INTO 表A(字段名1, 字段名2, ……) SELECT (字段名1, 字段名2, ……) FROM 表B
2.使用ora_loader
数据库之间的链接建立在DATABASE LINK上。要创建一个DB LINK,必须先
在每个数据库服务器上设置链接字符串。
1、 链接字符串即服务名,首先在本地配置一个服务名,地址指向远程的数据库地址,服务名取为将来你要使用的数据库链名:
2、创建数据库链接,
进入系统管理员SQL>操作符下,运行命令:
SQL>create public database link beijing connect to scott identified by tiger using 'tobeijing'; 其中: beijing是要创建的dblink的名称, using ‘tobeijing’ tobeijing是本地服务名的名称
则创建了一个以scott用户和北京数据库的链接beijing,我们查询北京的scott数据:
SQL>select * from emp@beijing;
这样就可以把深圳和北京scott用户的数据做成一个整体来处理。
3、建立同义词,为了使有关分布式操作更透明,ORACLE数据库里有同义词的对象synonym
SQL>create synonym bjscottemp for emp@beijing;
于是就可以用bjscottemp来替代带@符号的分布式链接操作emp@beijing。
4、查看所有的数据库链接,进入系统管理员SQL>操作符下,运行命令:
SQL>select owner,object_name from dba_objects where object_type='DATABASE LINK';
5、查看数据库连接
sql> select owner, db_link from dba_db_links;
ower db_link
public TEST.US.ORACLE.COM6、删除数据库连接
先从第5步中查看数据库连接,取得其db_link的名称
sql>drop public database link TEST.US.ORACLE.COM
数据库连接巳丢弃
CREATE PUBLIC DATABASE LINK bk_link CONNECT TO a库用户名 IDENTIFIED BY a库用户名的密码 USING 'b库可以访问a库的tnsnames.ora中tns名' ;INSERT INTO A(col1,col2,col3....) SELECT col1,col2,col3.... FROM B@bk_link;
CREATE PUBLIC DATABASE LINK bk_link CONNECT TO a库用户名
IDENTIFIED BY a库用户名的密码 USING 'b库可以访问a库的tnsnames.ora中tns名' ;INSERT INTO b(col1,col2,col3....) SELECT col1,col2,col3.... FROM a@bk_link;