如何将指定的表(结构和数据)复制到另一个数据中
同时希望源表中的 二进制字段也能完整复制过去。
新手望大家指点!
同时希望源表中的 二进制字段也能完整复制过去。
新手望大家指点!
解决方案 »
- vc ado oracle9i 存储过程大数据blob参数传空值
- 请教,在SQL里怎样把记录的某个字段,拼在一起。
- 如何查看是否安装了Oracle label security模块
- 请教两个查询
- 复杂sql问题
- Oracle的维护和触发器问题
- 如何设置oracle支持多线程程序???
- oracle816:在启动OracleoraHomeManagementServer时提示:在本地计算机无法启动OracleoraHomeManagementServer服务。错误997:重叠I/O操作
- 各位高手......管理服务器安装不了!!怎么办??
- ORA-01830:日期格式图片在转换整个输入字符串之前结束
- 优化T-Sql
- 关于oracle的一个最简单问题
我一个oracle 服务名 叫 orcl1 第二个叫 orcl2
我想把 oracl 里面的db1下的表 tabl1 连同数据一起复制到 orcl2 下 的db2 中应该如何操作啊?
Oracle DB Link
http://user.qzone.qq.com/251097186/blog/1246948303
数据库之间的链接建立在DATABASE LINK上。要创建一个DB LINK,必须先在每个数据库服务器上设置链接字符串。
1、 配置TNS , $ORACLE_HOME/NETWORK/ADMIN/tnsname.ora
10gstandby =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = HFCC-KF-3068)(PORT = 1522))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = 10gstandby)
)
)
2、创建数据库链接,
create public database link DB_LINK_NAME connect to TargetDatabaseUserName identified by TargetDatabasePassword using 'TargetDatabaseSIDName';
注:TargetDatabaseSIDName为该Oracle数据库所在的主机上的tnsnames.ora文件里边定义的数据库连接串。
SQL>create public database link dvd connect to system identified by system using 'orcl10g';
则创建了一个以system用户和orcl10g数据库的链接dvd,我们查询dvd数据:
SQL>select * from [email=all_users@dvd]all_users@dvd[/email];
这样就可以把本地和远程的数据做成一个整体来处理。
3、建立同义词,为了使有关分布式操作更透明,ORACLE数据库里有同义词的对象synonym
SQL>create synonym synTest for [email=all_users@dvd]all_users@dvd[/email];
于是就可以用synTest来替代带@符号的分布式链接操作[email=all_users@dvd]all_users@dvd[/email];
4、查看所有的数据库链接:
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 DVD.REGRESS.RDBMS.DEV.US.ORACLE.COM 6、删除数据库连接
先从第5步中查看数据库连接,取得其db_link的名称
sql>drop public database link DVD.REGRESS.RDBMS.DEV.US.ORACLE.COM
数据库连接巳丢弃
1 将数据库TEST完全导出,用户名system 密码manager 导出到D:\daochu.dmp中
exp system/manager@TEST file=d:\daochu.dmp full=y
2 将数据库中system用户与sys用户的表导出
exp system/manager@TEST file=d:\daochu.dmp owner=(system,sys)
3 将数据库中的表inner_notify、notify_staff_relat导出
exp aichannel/aichannel@TESTDB2 file= d:\data\newsmgnt.dmp tables=(inner_notify,notify_staff_relat) 4 将数据库中的表table1中的字段filed1以"00"打头的数据导出
exp system/manager@TEST file=d:\daochu.dmp tables=(table1) query=\" where filed1 like '00%'\"
上面是常用的导出,对于压缩,既用winzip把dmp文件可以很好的压缩。
也可以在上面命令后面 加上 compress=y 来实现。数据的导入
1 将D:\daochu.dmp 中的数据导入 TEST数据库中。
imp system/manager@TEST file=d:\daochu.dmp
imp aichannel/aichannel@HUST full=y file=d:\data\newsmgnt.dmp ignore=y
上面可能有点问题,因为有的表已经存在,然后它就报错,对该表就不进行导入。
在后面加上 ignore=y 就可以了。
2 将d:\daochu.dmp中的表table1 导入
imp system/manager@TEST file=d:\daochu.dmp tables=(table1) 基本上上面的导入导出够用了。不少情况要先是将表彻底删除,然后导入。注意:
操作者要有足够的权限,权限不够它会提示。
数据库时可以连上的。可以用tnsping TEST 来获得数据库TEST能否连上。附录一:
给用户增加导入数据权限的操作
第一,启动sql*puls
第二,以system/manager登陆
第三,create user 用户名 IDENTIFIED BY 密码 (如果已经创建过用户,这步可以省略)
第四,GRANT CREATE USER,DROP USER,ALTER USER ,CREATE ANY VIEW ,
DROP ANY VIEW,EXP_FULL_DATABASE,IMP_FULL_DATABASE,
DBA,CONNECT,RESOURCE,CREATE SESSION TO 用户名字
第五, 运行-cmd-进入dmp文件所在的目录,
imp userid=system/manager full=y file=*.dmp
或者 imp userid=system/manager full=y file=filename.dmp
本贴来自天极网群乐社区--http://q.yesky.com/group/review-17556591.html