日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
將Oracle中的數(shù)據(jù)更改后出錯(cuò)的解決方法

要想改正錯(cuò)誤,首先要先分析錯(cuò)誤,下面我們就先來(lái)分析分析問(wèn)題是怎樣的。

問(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ù)到從前。希望上文中講到的內(nèi)容能夠幫到大家。


文章題目:將Oracle中的數(shù)據(jù)更改后出錯(cuò)的解決方法
地址分享:http://m.5511xx.com/article/codhicj.html