接觸到一個項目 ,需要用到oracle 於是:
一:下載,安裝 ,
這裡面講的很仔細, 很清楚,跟著做就可以了。感謝作者。
http://blog.csdn.net/cxin917/article/details/50637891
因為我oracle 直接裝的是32位,(聽說32位比64穩定,兼容還是什麼的)
就沒有做上面連接教程,直接連接就可以了。
二:導入數據庫 ,因為同事給的都是dmp文件,收索了一下 ,相當於sql server 的備份數據庫吧。
當時oracle 是用虛擬機裝的 ,總是出 1017 ,或者其他錯誤什麼的,出錯改錯,網上怎麼說怎麼做,還是不行 ,錯誤一個接一個。
於是 ,放棄 虛擬機。直接裝系統裡面了。
此時,就是回到一,安裝步驟安裝了。
三:找了好久 ,說導入.dmp 文件 ,說如果是exp 形式導出的, 需要用 imp 導入。 當然 ,是cmd 窗口下運行。
列:exp test/test@test file =E:\Oracle\daochutest.dmp full = y
還說 ,導入前 需要 建立 表空間, 用戶 。 要跟導出的時候 一樣才行,要不然 存儲過程 視圖啥的 可能會丟失。
具體 步驟 如下:
create tablespace test datafile 'E:\Oracle\test.ora' size 500m;
--1.這裡的test為表空間名稱,路徑自己來命名。然後點執行按鈕。
create user test identified by test default tablespace test quota 500m on users;
-- 2.這裡第一個test為用戶名,第二個test為密碼,第三個test為表空間名。然後執行。
--3.授權 給test 賦的權限挺高的 可以導出
grant dba , connect,resource to test
--4刪除表空間格式:
DROP TABLESPACE test
INCLUDING CONTENTS AND DATAFILES CASCADE CONSTRAINTS
/*
tablespace:指定要刪除的表空間的名稱
INCLUDING CONTENTS:刪除表空間內的所有段
AND DATAFILES:刪除關聯的操作系統文件
CASCADE CONSTRAINTS:如果要刪除的表空間之外的表引用了該表空間內表的主
鍵和唯一鍵,則刪除這種引用完整性約束。
*/
drop user test
--5.刪除用戶
2 好3 之間,在test 中 建立了一個表。測試用。
2執行後,不能導 因為沒有權限 。
所以3 給了權限。 dba
然後 在cmd 執行 ,我用的管理員,怕普通的不行,還沒有用普通的嘗試。
導出成功,得到如下.dmp 文件。
導出成功。
四:嘗試 導入
1. 試圖把表空間給刪除掉。 想看是不是沒有表空間 會錯誤。
然後導入,報錯:
報:IPM-00058 錯誤 遇到 12154 。
2.重新建立 表空間 :
http://blog.csdn.net/xiaojin21cen/article/details/40077893
表空間 建好。
2.再導入:
imp test/test@orcl file =E:\Oracle\daochutest.dmp full = y
還是報一樣的錯誤,此時 應該是沒有建立用戶吧 用戶名 密碼都不存在的。
於是 ,添加 用戶,給予權限,重新導入
導入成功 。
另:用toad 工具 查看 .dmp文件 ,可以看到 具體內容
本來只想導出test 裡面的東西的,結果把所有的都導出來了,看來導出的時候,參數填寫的少,還需要改進。
網上搜了一下, 只需要在 導出的時候 加個參數 :onwer = test(當前用戶),並將 full = y 這句話 去掉 就可以了(不去掉 會起沖突)
今天又重新實驗了一下,發現 如果是用 dba 的權限導出的,必須要用dba的權限導入,如果是普通的用戶 導出的,
如果用system這個賬號的話,即使不建立表空間也是可以的 ,但是 一般的用戶 很少有system 的權限。 最好還是要建立一個表空間。
完結撒花。