解决Oracle数据库迁移时,序列无法导入的问题

先了解几个基本语句

创建序列
create sequence SEQ_COMPANY_CODE_ID
minvalue 1
maxvalue 9999999999999999999999999999
start with 61
increment by 1
cache 20;

创建触发器

CREATE OR REPLACE TRIGGER TRIGGER_company_code
before insert on company_code
 for each row
begin
 select SEQ_company_code_ID.nextval into :new.id from dual;
end;

查看全部序列的创建语句,用于导出序列

select dbms_metadata.get_ddl('SEQUENCE',u.object_name) from user_objects u where object_type='SEQUENCE';

解决数据库迁移时,序列无法导入的问题:

1、用PLSQL从源数据库导出表;

2、查寻全部序列并导出查询结果为.sql文件,编辑该文件可查看到全部序列的创建语句,提取全部values里面的内容;

insert into user_objects (DBMS_METADATA.GET_DDL('SEQUENC)
values ('
   CREATE SEQUENCE  "FAW_SUPPLY"."SEQ_BOOKING_SPACE_ID"  MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH 41 CACHE 20 NOORDER  NOCYCLE 
 ');

3、将提取后内容在目标库SQL窗口执行,实现批量创建序列;

4、导入从源数据库导出来的.dmp文件;

具体导出/导入命令如下:

1 oracle导出操作

1)打开cmd(windows)或者bash(linux);

2)使用exp命令

语法: exp 用户名/密码@主机名或者主机ip/服务名 tables=表名 file=存入本地dmp目标地址 log=存入本地log目标地址 owner=要导出的用户名

① 导出表:exp hr/hr@ora/orcl tables=jobs file=D:/jobs.dmp log=D:/jobs.log

    exp hr/hr@ora/orcl tables=jobs file=/home/ora/jobs.dmp log=/home/ora/jobs.log

② 导出数据库:去掉“  tables=表名 “ !

    exp hr/hr@ora/orcl file=D:/full.dmp log=D:/full.log

    exp hr/hr@ora/orcl file=/home/ora/full.dmp log=/home/ora/full.log

③ 导出该用户的数据库 : 

    exp hr/hr@ora/orcl file=D:/hr.dmp log=D:/hr.log owner=hr

    exp hr/hr@ora/orcl file=/home/ora/hr.dmp log=/home/ora/hr.log owner=hr

2 oracle导入操作

1)打开cmd(windows)或者bash(linux);

2)使用imp命令

语法:imp 用户名/密码 BUFFER=64000 file=数据库表.dmp存放的地址 log=存入本地log目标地址 ignore=y full=y

  imp hr/hr@ora/ORCL buffer=64000 file=/home/oracle/jobss.dmp log=/home/oracle/jobss.log ignore=y full=y

  imp hr/hr@ora/ORCL buffer=64000 file=D:/jobss.dmp log=D:/jobss.log ignore=y full=y

说明:ignore=y是表示忽略创建错误,继续后面的操作;full=y表示导入文件中的全部内容,有可能有多个用户的内容,如果你链接的用户默认使用的表空间设置是system,则导入文件的内容会导到system上。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值