隨筆-7  評(píng)論-9  文章-0  trackbacks-0

          問(wèn)題:
          數(shù)據(jù)庫(kù)表中沒(méi)有建立主鍵,即使建立了主鍵,也是使用與業(yè)務(wù)相關(guān)的字段建立的主鍵,還有復(fù)合主鍵。
          調(diào)整:
          1)為每個(gè)表添加ID列,并創(chuàng)建主鍵;
          2)為每個(gè)表創(chuàng)建Oracle Sequence,使用trigger實(shí)現(xiàn)自動(dòng)獲取;
          3)原來(lái)使用業(yè)務(wù)鍵創(chuàng)建的主鍵改為唯一索引。

          實(shí)現(xiàn):
          1)從舊數(shù)據(jù)庫(kù)中導(dǎo)出表結(jié)構(gòu)及其他用戶對(duì)象,在新數(shù)據(jù)庫(kù)中創(chuàng)建用戶并導(dǎo)入
          exp username/passwd@dbname file=old.dmp rows=n compress=n
          說(shuō)明:
          a) exp命令不能使用一個(gè)參數(shù)比如tables=all 導(dǎo)出所有表,需要指定表名列表;表名列表獲取sql:select table_name from cat where table_type = 'TABLE';
          b) 如果只導(dǎo)出表結(jié)構(gòu)而不導(dǎo)出其他用戶對(duì)象(sequence、procedure、trigger等),可以指定tables參數(shù),例如:tables=tab1,tab2

          導(dǎo)入新數(shù)據(jù)庫(kù)后,刪除沒(méi)有用的用戶對(duì)象。(為避免JOB、數(shù)據(jù)庫(kù)鏈、視圖因權(quán)限不足而失敗,使用DBA用戶導(dǎo)入)

          2)使用程序連接新數(shù)據(jù),根據(jù)新數(shù)據(jù)中的表名生成sql,并在新數(shù)據(jù)庫(kù)中執(zhí)行
              sql的內(nèi)容包括根據(jù)舊主鍵創(chuàng)建唯一索引、刪除舊主鍵、創(chuàng)建ID列、創(chuàng)建ID主鍵、創(chuàng)建Sequence、創(chuàng)建Trigger

          3)從舊數(shù)據(jù)庫(kù)中導(dǎo)出數(shù)據(jù),在新數(shù)據(jù)庫(kù)中導(dǎo)入數(shù)據(jù)
          exp username/passwd@dbname tables=tablename file=filename.dmp rows=y compress=n
          既包含表結(jié)構(gòu),又包含數(shù)據(jù)

          ---------------------------------------------------------------------------------------------
          使用PL/SQL  Developer導(dǎo)出/導(dǎo)入表結(jié)構(gòu)、表數(shù)據(jù)

          1)導(dǎo)出表結(jié)構(gòu):

          Tools-->Export User Objects(導(dǎo)出用戶對(duì)象) -->選擇要導(dǎo)出的表(包括Sequence等)-->.sql文件,導(dǎo)出的都為sql文件
          a)不要勾選Include Owner,否則用戶對(duì)象前面會(huì)有Owner名字。不要勾選Include Storage,否則建表語(yǔ)句會(huì)有與存儲(chǔ)有關(guān)的子句。
          b)如果只導(dǎo)出表,則只選擇表對(duì)象。

          導(dǎo)出表數(shù)據(jù):

          Tools-->Export Tables-->選擇表,選擇SQL Inserts-->.sql文件

           
          導(dǎo)入表結(jié)構(gòu):

          執(zhí)行剛剛導(dǎo)出的sql文件,記住要?jiǎng)h掉table前的用戶名,比如以前這表名為sys.tablename,必須刪除sys

          導(dǎo)入表數(shù)據(jù):

          執(zhí)行剛剛導(dǎo)出的sql文件


             

          posted on 2011-05-25 15:28 jeffma 閱讀(706) 評(píng)論(0)  編輯  收藏

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 深泽县| 贺州市| 临高县| 正镶白旗| 东莞市| 汤原县| 英山县| 合川市| 景泰县| 偏关县| 淮北市| 分宜县| 浙江省| 蓬安县| 江门市| 邓州市| 临夏市| 安国市| 灌南县| 鄂伦春自治旗| 沅陵县| 庄浪县| 吉首市| 呼伦贝尔市| 来安县| 张家川| 方城县| 岑巩县| 涿鹿县| 鸡西市| 蓝田县| 陵水| 麟游县| 唐山市| 缙云县| 鹰潭市| 泉州市| 偃师市| 株洲市| 武城县| 商丘市|