Oracle數(shù)據(jù)更改后出錯(cuò)的解決方法
在使用Oracle的過(guò)程中我們給系統(tǒng)創(chuàng)建了兩個(gè)用戶:com和comtest。前者存放的是正式庫(kù)數(shù)據(jù),后者存放的測(cè)試庫(kù)數(shù)據(jù)。它們都有一個(gè)taw_rm_user表,存放了使用該系統(tǒng)的用戶基本信息,于是就是把其中的password字段全部改成了123456。
DMP備份文件創(chuàng)建后,經(jīng)過(guò)一段時(shí)間創(chuàng)建了幾個(gè)新的用戶,并且有些舊的用戶的其他信息也已經(jīng)更改了。但是需要把舊用戶的密碼恢復(fù)到從前,直接把備份文件中的taw_rm_user表導(dǎo)入com用戶下是肯定不行的。經(jīng)過(guò)分析后,得到了一個(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)鍵SQL語(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;
這樣就可以實(shí)現(xiàn)在不更改其他所有信息的情況下,將所有舊用戶的密碼恢復(fù)到從前。
- ORACLE出現(xiàn)錯(cuò)誤1033和錯(cuò)誤ORA-00600的解決方法
- oracle中文亂碼的解決方法
- 64位win7下pl/sql無(wú)法連接oracle解決方法
- 登錄oracle數(shù)據(jù)庫(kù)時(shí)密碼忘記的解決方法
- oracle12c安裝報(bào)錯(cuò):PRVF-0002的解決方法
- oracle修改SGA后無(wú)法啟動(dòng)問(wèn)題分析及解決方法
- Oracle Connect to Idle Instance解決方法
- Oracle用戶密碼含有特殊字符導(dǎo)致無(wú)法登陸解決方法
- Oracle數(shù)據(jù)庫(kù)賬號(hào)被鎖定解決方法
- Oracle 11g2的監(jiān)聽(tīng)器配置教程
- Oracle監(jiān)聽(tīng)器服務(wù)不能啟動(dòng)的解決方法
相關(guān)文章
win10 oracle11g安裝報(bào)錯(cuò)問(wèn)題集合 附解決方法
這篇文章主要為大家總結(jié)了win10 oracle11g安裝報(bào)錯(cuò)問(wèn)題的產(chǎn)生原因,和oracle安裝報(bào)錯(cuò)的解決方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-05-05oracle 觸發(fā)器 實(shí)現(xiàn)出入庫(kù)
出庫(kù)入庫(kù)這樣的功能在許多系統(tǒng)中都有??赡芙蟹ú灰弧S械目赡苁菙?shù)量,有的可能是金額。我這里以金額為例 實(shí)現(xiàn)出庫(kù)入庫(kù)也有許多方法,一種是用語(yǔ)言實(shí)現(xiàn),一種是用觸發(fā)器實(shí)現(xiàn)。它們各有千秋。2009-07-07自動(dòng)備份Oracle數(shù)據(jù)庫(kù)
自動(dòng)備份Oracle數(shù)據(jù)庫(kù)...2007-03-03PDO取Oracle lob大字段,當(dāng)數(shù)據(jù)量太大無(wú)法取出的問(wèn)題的解決辦法
最近,做sns的項(xiàng)目,用PDO連接Oracle數(shù)據(jù)庫(kù),讀取Clob字段,當(dāng)數(shù)據(jù)量非常大的時(shí)候(上萬(wàn)個(gè)字符),返回空值,從網(wǎng)上也沒(méi)有查到相關(guān)的資料。自己刻苦研究加上同事幫助,終于解決了。廢話就不說(shuō)了,下面把內(nèi)容貼出來(lái)。2009-03-03oracle分頁(yè)存儲(chǔ)過(guò)程 oracle存儲(chǔ)過(guò)程實(shí)例
這篇文章主要介紹了oracle存儲(chǔ)過(guò)程實(shí)例,實(shí)現(xiàn)oracle查詢數(shù)據(jù)分頁(yè),大家參考使用吧2014-01-01ORACLE應(yīng)用經(jīng)驗(yàn)(2)
ORACLE應(yīng)用經(jīng)驗(yàn)(2)...2007-03-03Oracle中instr函數(shù)與substr函數(shù)及自制分割函數(shù)詳解
這篇文章主要介紹了Oracle中instr函數(shù)與substr函數(shù)以及自制分割函數(shù),大家都知道substr函數(shù)就是很簡(jiǎn)單明了,就是個(gè)截取字符函數(shù),本文通過(guò)實(shí)例代碼對(duì)這接個(gè)函數(shù)詳細(xì)介紹,需要的朋友可以參考下2023-07-07oracle數(shù)據(jù)庫(kù)下統(tǒng)計(jì)專(zhuān)營(yíng)店的男女?dāng)?shù)量的語(yǔ)句
oracle數(shù)據(jù)庫(kù)下統(tǒng)計(jì)專(zhuān)營(yíng)店的男女?dāng)?shù)量的語(yǔ)句,方便需要的朋友2012-07-07