oracle 中怎么把一个表中的数据完全复制到另外一个表? oracle 中怎么把一个表中的数据完全复制到另外一个表?Ps:两个表的结构一样。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 insert into table2 select * from table1;如果表不存在可以使用create table table2 as select * from table1; 建立一个dblink,你看看关于dblink的使用 那你就用pl/sql工具导出表数据,然后再导入就可以了 至少有四種方法請參考http://jack198409.itpub.net/ 还是没搞掂,之前都是搞sql的,oracle刚开始用,可不可以具体点。 1、逻辑备份 逻辑备份的工具叫Exp,完成将数据库指定对象的内容导出的任务。它导出的文件,必须由专门的恢复工具Imp来完成导入。 语法: 有以下方法查看帮助 D:\>exp help=y 如: emp 用户名/口令 参数1=值 参数2=值 1)导出指定的表 exp hr/hr file=导出文件名 tables=(表1,表2.....) 2)备份一个用户(方案)下的所有对象,包括表、视图、过程、函数等 a.自已进行备份 exp hr/hr file=hr.dmp b.管理员来备份用户 exp system/a123 file=hr_full.dmp owner=(hr,test....) 3)备份整个数据库,所有的方案对象(除Sys的以外),一般常用做为生产系统的数据库备份方案。它可以保持用户间的一些关系(权限) exp system/123 file=full.dmp full=y exp常用参数 buffer:缓冲区大小。 log :将备份时屏幕输出信息记录到文件,这个参数是指定输出日志文件。 导入(逻辑恢复)工具 imp 语法: imp 用户/口令 file=文件名 tables=表名 按用户导入 imp system/a123 file=文件名 fromuser=hr touser=新的用户名 全部恢复(除sys以外所有的用户及对象都导入),需要先用dbca创建数据库。 imp system/a123 file=文件名 full = y 从全库备份中恢复一张表 imp system/a123 file=文件名 fromuser=hr touser=hr tables=(表名) 参数: buffer:缓冲区大小。 commit:指定为Y,导入部分记录后提交一次 ignore:指定为Y,导入过程中会忽略“对象已经存在”这种错误。 网络导出与导入 exp hr/hr@jjjj file=jjj.txt imp hr/hr@jjjj file=jjj.txt如:exp wcy/123 file=wcy.dmp tables=(BD,BD_DJXX,DM_DS_SWJGDM,DM_GDS,DM_GS_SWJGDM,DS_DJXX,DS_RKXX,GS_CB,GS_DJXX,GS_QS,GS_RK,GS_SB,GS_TS,GS_ZNJ,MYVAR,TJ_DJ,XT_GROUP,XT_GROUPPOWER,XT_GROUPUSER,XT_MENU,XT_USER)imp wcy/123 file=wcy1.dmp tables=(BD,BD_DJXX,DM_DS_SWJGDM,DM_GDS,DM_GS_SWJGDM,DS_DJXX,DS_RKXX,GS_CB,GS_DJXX,GS_QS,GS_RK,GS_SB,GS_TS,GS_ZNJ,MYVAR,TJ_DJ,XT_GROUP,XT_GROUPPOWER,XT_GROUPUSER,XT_MENU,XT_USER) ignore=y copy from bm/bm123@erpora to bm/bm123@whoraappend 表名 --目標表using select * from 表名 用plsql ,2个库为db1 和db2登陆db1insert into table2 select * db2.from table1; 最简单的方法:create table 新表 as select * from 旧表 ; 假設在DB1中有表TABLE_TEST 在DB2中有表TABLE_TEST 創建DB2到DB1的DBLINK SQL>create database link DB2_TO_DB1 connect to DB1_USERNAME identified by DB1_PASSWORD using 'DB1'; --然後在DB2中 SQL>INSERT INTO TABLE_TEST SELECT * FROM TABLE_TEST@DB2_TO_DB1 Oracle 的owner 和table_owner 有什么区别?如何修改Table_owner? ORACLE数据库解锁问题 where 条件中含有子查询的效率问题 oracle9i客户端连接oracle9i数据库问题? oracle 10g安装时为什么没有we8dec字符集 在SP中写文件的问题 刚才在MSQL看到的,大家来试下 为什么要用使用者组?将相同的概要文件分配给不同的用户,是不是就可以了。 ? ProC 的一个小问题(急!线上给分!!!) 同一SQL查询结果,时有时无,是什么原因? Jdeveloper部署iStore运行出错
如果表不存在可以使用
create table table2 as select * from table1;
請參考http://jack198409.itpub.net/
可不可以具体点。
逻辑备份的工具叫Exp,完成将数据库指定对象的内容导出的任务。它导出的文件,必须由专门的恢复工具Imp来完成导入。
语法:
有以下方法查看帮助
D:\>exp help=y
如:
emp 用户名/口令 参数1=值 参数2=值
1)导出指定的表
exp hr/hr file=导出文件名 tables=(表1,表2.....)
2)备份一个用户(方案)下的所有对象,包括表、视图、过程、函数等
a.自已进行备份
exp hr/hr file=hr.dmp
b.管理员来备份用户
exp system/a123 file=hr_full.dmp owner=(hr,test....)
3)备份整个数据库,所有的方案对象(除Sys的以外),一般常用做为生产系统的数据库备份方案。它可以保持用户间的一些关系(权限)
exp system/123 file=full.dmp full=y
exp常用参数
buffer:缓冲区大小。
log :将备份时屏幕输出信息记录到文件,这个参数是指定输出日志文件。
导入(逻辑恢复)工具 imp
语法:
imp 用户/口令 file=文件名 tables=表名
按用户导入
imp system/a123 file=文件名 fromuser=hr touser=新的用户名
全部恢复(除sys以外所有的用户及对象都导入),需要先用dbca创建数据库。
imp system/a123 file=文件名 full = y
从全库备份中恢复一张表
imp system/a123 file=文件名 fromuser=hr touser=hr tables=(表名) 参数:
buffer:缓冲区大小。
commit:指定为Y,导入部分记录后提交一次
ignore:指定为Y,导入过程中会忽略“对象已经存在”这种错误。
网络导出与导入 exp hr/hr@jjjj file=jjj.txt
imp hr/hr@jjjj file=jjj.txt
如:exp wcy/123 file=wcy.dmp tables=(BD,BD_DJXX,DM_DS_SWJGDM,DM_GDS,DM_GS_SWJGDM,DS_DJXX,DS_RKXX,GS_CB,GS_DJXX,GS_QS,GS_RK,GS_SB,GS_TS,GS_ZNJ,MYVAR,TJ_DJ,XT_GROUP,XT_GROUPPOWER,XT_GROUPUSER,XT_MENU,XT_USER)
imp wcy/123 file=wcy1.dmp tables=(BD,BD_DJXX,DM_DS_SWJGDM,DM_GDS,DM_GS_SWJGDM,DS_DJXX,DS_RKXX,GS_CB,GS_DJXX,GS_QS,GS_RK,GS_SB,GS_TS,GS_ZNJ,MYVAR,TJ_DJ,XT_GROUP,XT_GROUPPOWER,XT_GROUPUSER,XT_MENU,XT_USER) ignore=y
append 表名 --目標表
using select * from 表名
登陆db1
insert into table2 select * db2.from table1;
在DB2中有表TABLE_TEST
創建DB2到DB1的DBLINK
SQL>create database link DB2_TO_DB1
connect to DB1_USERNAME identified by DB1_PASSWORD
using 'DB1';
--然後在DB2中
SQL>INSERT INTO TABLE_TEST SELECT * FROM TABLE_TEST@DB2_TO_DB1