使用Oracle建立資料庫以及項目開發中總結的經驗
- 1、Oracle建立資料庫
- 2、項目開發總結經驗(使用Navicat操作Oracle和Mysql的注意事項,希望對您有幫助)
-
- 2.1場景
- 2.2注意事項
1、Oracle建立資料庫
1、建立使用者
點選建立查詢即可
create user 使用者名 identified by 密碼;
例如:create user mydata identified by 123456;
2、授權
還是在建立查詢中
grant connect, resource to 使用者名;//之前的mydata使用者名
grant dba to 使用者名;//還是之前的mydata
這裡與Mysql很大的不同就是,navicat裡點選右鍵并沒有建立Oracle資料庫的選項,其實操作上面的語句後就相當于建立的使用者就是那個資料庫
注意:重新整理一下
2、項目開發總結經驗(使用Navicat操作Oracle和Mysql的注意事項,希望對您有幫助)
2.1場景
項目即将上線,需要我将開發中建立的oracle資料庫表的結構,以及新增了字段的表的alert語句,導出後放在一個sql檔案中(為什麼放一個?友善管理嘛,到時候部署的時候難道還一個一個導進去嗎?),我要做的就是去測試導出來并且合并後的資料庫在一個新的資料庫環境下運作是否沒有問題。
于是我有了上面的第一步操作,建立 庫(與其說庫不如說是擁有權限的使用者),然後使用導入之前合并的sql檔案,這是問題來了!!
執行失敗,并且navicat報了一個錯誤:
ORA-01430:column being added already exists in table
沒理由呀!我是建立的庫,裡面連表都沒有,為何會報字段已存在的問題。
經過大佬們的一番鑒定,我的sql檔案出錯了,并且經過剛剛的操作,問題很大!!
因為我不小心把sql檔案中所有相關表的資料都删了!

以前用navicat操作MySQL資料庫的時候,重來沒有這樣的問題,至于為什麼,我總結了以下幾點。
2.2注意事項
- 導出的Oracle檔案或是MySQL檔案裡面的語句都會帶上先判斷表是否存在,存在就先删除再建立的語句,也就是第一句
之類的,這條語句執行後不僅僅是删表還會删除所有的資料。是以在操作前最好先删除所有的Drop以免出現意外!Drop xxxx
- 即使是用同樣的navicat,導出的Oracle檔案和Mysql有一些差別,Oracle的所有表名都會帶上目前的資料庫名,比如我的Oracle資料庫叫PT20,其中有張表叫SYS_USER,那麼生成出來的語句中則是"PT20"."SYS_USER",而MySQL則是"SYS_USER",是以在執行檔案的時候依然是在PT20資料庫執行,現在你知道為什麼我會删除原來表中所有的資料了吧!
- 最後就是建議,常備份啊!!!在工具裡的資料同步選項,它可以做到移植一個資料庫裡所有的表,或者是帶上所有的資料,并且表相同的情況下,如果字段不同還可以進行更新!!牛掰!
PS: navicat是一個很好用的工具,可能因為我還是小白的原因,對oracle也不熟悉,造成了一些工作上的小插曲,但是還好,畢竟是測試庫,資料丢了還可以自己建,而且總感覺是我leader故意讓我踩坑一樣,不然怎麼那麼淡定!
以上就當是工作經驗上的一些總結,記錄下來也是提醒以後的自己在操作資料庫方面要多加小心,也希望對茫茫人海中看到這篇文章的你有些許幫助!