oracle 导出导入触发器,oracle impdp将导出用户的所有对象导入至另一个用户下,生成的触发器语句问题处理...

问题产生的操作步骤及详细说明:

1)操作的数据库是oracle 11g,先通过命令将用户GAS_NEW的数据导出,命令语句如下:

2add6037b63c9eee6a1c5367b9d5168b92f.jpg

aa616d7183d58c070198818639adfe2dff2.jpg

expdp GAS_NEW/GAS_NEW@ORCL schemas=GAS_NEW dumpfile=gas20180123.dmp DIRECTORY=CS_DB

View Code

2)将导出的数据导入至另一新建用户GAS下(含所有原GAS_NEW用户下的对象),命令参考如下:

IMPDP GAS/GAS@ORCL DIRECTORY=CS_DB schemas=GAS_NEW dumpfile=gas20180123.dmp REMAP_SCHEMA=GAS_NEW:GAS

以上语句的说明:需要导入用户是GAS,schemas设置为GAS_NEW的原因是:导出的用户为GAS_NEW。

设置把原GAS_NEW用户的对象插入到新用户GAS下REMAP_SCHEMA=GAS_NEW:GAS

3)以上步骤能够正常执行完毕,并且原用户GAS_NEW下的对象都迁移到新用户GAS下,但有一个触发器问题。以下语句是迁入后某个触发器的命令语句:

DROP TRIGGERTR_FM_FILE_ATTR;CREATE OR REPLACE TRIGGER TR_FM_FILE_ATTR BEFORE INSERT

ONGAS_NEW.FM_FILE_ATTRFOREACH ROWWHEN(

NEW.IDIS NULL ORNEW.ID= 0)BEGIN

SELECT SQ_FM_FILE_ATTR.NEXTVAL INTO:NEW.IDFROMDUAL;END;/

可以看出:触发器已成功在GAS用户下建立,但是内容语句却有问题,触发器仍然是创建给原用户GAS_NEW下的某个表上,需要改为当前用户GAS的表上。

处理方式如下:

1、利用toad工具去查看生成的触发器列表

798dccf89d43c9e34bed4a213cdbb9a3cb6.jpg

2)全选所有触发器,点右键'Create in another schema'

34bde2dc15fed9c61e0a36f6bae1d26a330.jpg

3)点击‘OK’

465182fb5c98800aaf04ff747de27b4df0e.jpg

4)在弹出的框体中选中 ‘Script’ 选项卡

709af13e0c3126ad8c4c2855e0bcacdc4bd.jpg

5)‘全选’所有命令并复制出来,粘贴到记事本或其他编辑工具

6)替换GAS_NEW为GAS,然后将调整后的语句拿去用户GAS下去执行并提交

7)以上步骤就完成了触发器的修改

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值