問題產生的操做步驟及詳細說明:數據庫
1)操做的數據庫是oracle 11g,先經過命令將用戶GAS_NEW的數據導出,命令語句以下:oracle
expdp GAS_NEW/GAS_NEW@ORCL schemas=GAS_NEW dumpfile=gas20180123.dmp DIRECTORY=CS_DB
2)將導出的數據導入至另外一新建用戶GAS下(含全部原GAS_NEW用戶下的對象),命令參考以下:ide
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:GASspa
3)以上步驟可以正常執行完畢,而且原用戶GAS_NEW下的對象都遷移到新用戶GAS下,但有一個觸發器問題。如下語句是遷入後某個觸發器的命令語句:3d
DROP TRIGGER TR_FM_FILE_ATTR; CREATE OR REPLACE TRIGGER TR_FM_FILE_ATTR BEFORE INSERT ON GAS_NEW.FM_FILE_ATTR FOR EACH ROW WHEN ( NEW.ID IS NULL OR NEW.ID = 0 ) BEGIN SELECT SQ_FM_FILE_ATTR.NEXTVAL INTO :NEW.ID FROM DUAL; END; /
能夠看出:觸發器已成功在GAS用戶下創建,可是內容語句卻有問題,觸發器仍然是建立給原用戶GAS_NEW下的某個表上,須要改成當前用戶GAS的表上。code
處理方式以下:對象
一、利用toad工具去查看生成的觸發器列表blog
2)全選全部觸發器,點右鍵'Create in another schema'ip
3)點擊‘OK’
4)在彈出的框體中選中 ‘Script’ 選項卡
5)‘全選’全部命令並複製出來,粘貼到記事本或其餘編輯工具
6)替換GAS_NEW爲GAS,而後將調整後的語句拿去用戶GAS下去執行並提交
7)以上步驟就完成了觸發器的修改