国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 數(shù)據(jù)庫(kù) > Oracle > 正文

將Oracle中的數(shù)據(jù)更改后出錯(cuò)的解決方法

2024-08-29 13:53:13
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

今天上班犯了一個(gè)嚴(yán)重的錯(cuò)誤:把我們系統(tǒng)所使用的Oracle數(shù)據(jù)庫(kù)中的數(shù)據(jù)給改掉了!當(dāng)發(fā)現(xiàn)自己改錯(cuò)時(shí),頓時(shí)冒了一身冷汗。不過(guò)轉(zhuǎn)念一想,我們不是定期作了數(shù)據(jù)庫(kù)備份的嘛,適當(dāng)?shù)幕謴?fù)一下,應(yīng)該不會(huì)出現(xiàn)太大的問(wèn)題吧,因?yàn)槲抑皇清e(cuò)誤的使用了一個(gè)update語(yǔ)句。


問(wèn)題是這樣的:

我們給系統(tǒng)創(chuàng)建了兩個(gè)用戶:com和comtest。前者存放的是正式庫(kù)數(shù)據(jù),后者存放的測(cè)試庫(kù)數(shù)據(jù)。它們都有一個(gè)taw_rm_user表,存放了使用該系統(tǒng)的用戶基本信息,我就是把其中的passWord字段全部改成了123456。


DMP備份文件是9月28號(hào)創(chuàng)建的,經(jīng)過(guò)十一七天長(zhǎng)假后到今天,已經(jīng)有十幾天了,我簡(jiǎn)單的查了一下日志,發(fā)現(xiàn)已經(jīng)創(chuàng)建了幾個(gè)新的用戶,并且有些舊的用戶的其他信息也已經(jīng)更改了。直接把備份文件中的taw_rm_user表導(dǎo)入com用戶下是肯定不行的。經(jīng)過(guò)一段時(shí)間的冷靜思考后,得到了一個(gè)解決方案。大致思路是:


1. 將測(cè)試庫(kù)的taw_rm_user表用CREATE TABLE AS語(yǔ)句導(dǎo)到一個(gè)臨時(shí)的備份表中(測(cè)試庫(kù)中的用戶表也不能亂改);


2. 再將taw_rm_user表刪除;


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


4. 再自己編寫(xiě)一個(gè)PL/SQL程序塊,通過(guò)使用游標(biāo)循環(huán),將這個(gè)新導(dǎo)入的表中的password字段更新到com.taw_rm_user表的對(duì)應(yīng)記錄中。注意,這里只更新對(duì)應(yīng)記錄,對(duì)新加入的用戶記錄不作任何修改;


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


其中使用的兩段關(guān)鍵語(yǔ)句如下:


-- 備份測(cè)試庫(kù)中的taw_rm_user表

create table comtest.taw_rm_user_bak

as

select * from comtest.taw_rm_user


-- 恢復(fù)正式庫(kù)中的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;


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


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 青川县| 长治县| 香港 | 连云港市| 铜梁县| 乌拉特中旗| 甘南县| 七台河市| 巴彦淖尔市| 泰来县| 两当县| 余庆县| 岫岩| 德安县| 延庆县| 博兴县| 板桥市| 宝清县| 松阳县| 太康县| 荔波县| 巩留县| 灵丘县| 大宁县| 泰来县| 阿合奇县| 昭通市| 太和县| 都昌县| 麻江县| 宁河县| 陇川县| 凌源市| 延边| 凌源市| 兴城市| 林甸县| 河间市| 鄄城县| 偏关县| 佛教|