导入dmp文件的命令非常简单。
先创建数据库用户和表空间,这里不再赘述。
以全文件导入为例。
-- 帐号名与密码 可以追加服务名 一般在本地单板上处理可以忽略
-- full=Y 可选 全文件导入
-- ignore=Y 建议选择 忽略创建过程报错
-- fromuser=serv 源用户 生产的数据库用户可能和本地不同名
-- touser=mebugs 导入用户 本地数据库用户
imp 'mebugs/mebugs' file=/home/oracle/Mebugs_Table.dmp full=Y ignore=Y fromuser=serv touser=mebugs
导入指定表时,如果表存在需要先 drop 掉,否则会出错。
sqlplus -s mebugs/mebugs
drop table me_bugs_user;
exit
导入命令
imp 'mebugs/mebugs' file=/home/oracle/Mebugs_Table.dmp tables=me_bugs_user ignore=Y fromuser=serv touser=sdujsn
-- tables参数支持制定多个表
imp 'mebugs/mebugs' file=/home/oracle/Mebugs_Table.dmp tables=(me_bugs_user,me_bugs_role) ignore=Y fromuser=serv touser=sdujsn
同理多表导入时,这些表也不能存在。
生产数据多库数据如果不同步(存在差异),现在需要已A库为基准,B库存在的数据更新到A库(B库多余的忽视)。
-- 先导入B库
-- 拷贝一个备份表
create table me_bugs_user as select * from me_bugs_user_bak;
-- 删掉源表,然后导入A库
drop table me_bugs_user;
-- 执行同步(数据量大的话,需要检查和添加索引)
UPDATE me_bugs_user T1 SET (T1.SENTERPRISEID, T1.SGROUPID, T1.SPNPN, T1.SSERVICENO, T1.SDEPARTMENTID, T1.SUSERNAME, T1.NNETWORKTYPE, T1.SPROPERTY) = (SELECT T2.SENTERPRISEID, T2.SGROUPID, T2.SPNPN, T2.SSERVICENO, T2.SDEPARTMENTID, T2.SUSERNAME, T2.NNETWORKTYPE, T2.SPROPERTY FROM t_sobest_mem_bak T2 WHERE T1.NAME=T2.NAME) WHERE T1.NAME in (select NAME from me_bugs_user_bak);
-- 删除备份表
drop table t_sobest_mem_bak;
当前还没有观点发布,欢迎您留下足迹!
存储过程是个好东西,WEB工程在架构阶段会设计很多存储过程,后续在架构中开发需求的时候,反而会直接写SQL完成各项诉求。所以说,这玩意儿略微有那么一点点伪高端。
为了方便数据的处理,或者本身有特殊的数据格式要求,我们可以使用SPOOL命令导出Oracle数据库数据数据文件,并指定格式,高效且强大...
在Oracle中创建、运行、维护定时任务,配合存储过程可以完成很多特定的业务诉求,dbms_job提供了使用的API功能便于我们实现更为细致的定时任务管理
Linux系统下的Oracle数据库实用常用的维护命令整理,本文内容偏向运维,主要包含:基础启动重启、表空间维护、数据库角色与用户维护、字符集配置等,并给出各类场景的实例语句
对于数据库而言,多表连接操作可以算的上是基本操作,在 MongoDB 通过 $lookup 聚合查询可以实现多表左连接查询,在后续的版本中 $lookup 得到了一系列的增强,实现更为复杂的关联查询
MySql数据库在Linux系统下默认数据库名与表名严格区分大小写,一般情况下我们创建表名习惯使用全小写,如果遇到某些从Windows服务器迁移过来的数据库可能需要设置大小写不敏感