国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

將Oracle中的數據更改后出錯的解決方法

瀏覽:147日期:2023-11-23 12:01:56

今天上班犯了一個嚴重的錯誤:把我們系統所使用的Oracle數據庫中的數據給改掉了!當發現自己改錯時,頓時冒了一身冷汗。不過轉念一想,我們不是定期作了數據庫備份的嘛,適當的恢復一下,應該不會出現太大的問題吧,因為我只是錯誤的使用了一個update語句。

問題是這樣的:

我們給系統創建了兩個用戶:com和comtest。前者存放的是正式庫數據,后者存放的測試庫數據。它們都有一個taw_rm_user表,存放了使用該系統的用戶基本信息,我就是把其中的password字段全部改成了123456。

DMP備份文件是9月28號創建的,經過十一七天長假后到今天,已經有十幾天了,我簡單的查了一下日志,發現已經創建了幾個新的用戶,并且有些舊的用戶的其他信息也已經更改了。直接把備份文件中的taw_rm_user表導入com用戶下是肯定不行的。經過一段時間的冷靜思考后,得到了一個解決方案。大致思路是:

1. 將測試庫的taw_rm_user表用CREATE TABLE AS語句導到一個臨時的備份表中(測試庫中的用戶表也不能亂改);

2. 再將taw_rm_user表刪除;

3. 然后將DMP備份文件的taw_rm_user表用IMP命令導入到comtest下;

4. 再自己編寫一個PL/SQL程序塊,通過使用游標循環,將這個新導入的表中的password字段更新到com.taw_rm_user表的對應記錄中。注意,這里只更新對應記錄,對新加入的用戶記錄不作任何修改;

5. 再將之前備份的taw_rm_user表恢復到comtest下即可。

其中使用的兩段關鍵語句如下:

-- 備份測試庫中的taw_rm_user表

create table comtest.taw_rm_user_bak

as

select * from comtest.taw_rm_user

-- 恢復正式庫中的taw_rm_user.password字段

declare

rec_comtest comtest.taw_rm_user%rowtype;

cursor cur_comtest is

select * from comtest.taw_rm_user;

begin

open cur_comtest;

loop

fetch cur_comtest into rec_comtest;

exit when cur_comtest%notfound;

update com.taw_rm_user

set com.taw_rm_user.password=rec_comtest.password

where com.taw_rm_user.user_id=rec_comtest.user_id;

end loop;

close cur_comtest;

commit;

end;

這樣就可以在不更改其他所有信息的情況下,將所有舊用戶的密碼恢復到從前。

標簽: Oracle 數據庫
主站蜘蛛池模板: 狠狠综合久久久综合 | 国产97公开成人免费视频 | 男女视频免费观看 | 日韩欧免费一区二区三区 | 精品a视频 | 国产高清视频a在线大全 | 国产精品成人在线播放 | 深夜爽爽爽gif福利免费 | 怡红院成人网 | 亚洲精品在线免费看 | 国产妇乱子伦视频免费 | 亚洲欧美国产中文 | 久久国产亚洲观看 | 成人免费午间影院在线观看 | 男人一进一出桶女人视频 | 日韩免费高清一级毛片在线 | 国产精品视频永久免费播放 | 99久久精品久久久久久清纯 | 国产波多野结衣中文在线播放 | 毛片网站大全 | 成年人www| 色在线网站免费观看 | 日本精品视频一视频高清 | 美女张开腿让男人桶爽免费网站 | 亚洲视频免费一区 | 欧美日韩亚洲高清不卡一区二区三区 | 大量真实偷拍情侣视频野战 | 三级在线国产 | 久久成人免费大片 | 免费一级视频在线播放 | 国产毛片久久精品 | 成人丝袜激情一区二区 | 男女国产 | 亚洲国产专区 | 在线成人免费观看国产精品 | 在线观看免费黄视频 | 九九在线观看视频 | 综合自拍亚洲综合图区美腿丝袜 | 香港国产特级一级毛片 | 国产乱码一区二区三区四 | 国产一区二区三区在线视频 |