從SqlServer轉手Oracle的一些坑

來源:互聯網
上載者:User

標籤:

為將SqlSugar ORM轉製成OracleSugar ORM 本想一天搞定,憑著經驗不看任何Oracle資料就直接強上了,但是從配置PLSQL和一些文法區別帶來了很多坑讓我進度放緩

 

這個貼子對於身邊沒有Oracle朋友或第一次接觸Oracle的朋友應該會有些協助

 

1、Oracle安裝的目錄不能有中文,不能有中文

如果是WIN10的使用者在安裝過程中會拋出警告,不要管它直接強行安裝,安裝目錄裡面不能有中文重要的事情說三遍。 

 

2、下載安裝服務

你要知道下址載什麼:

http://www.oracle.com/technetwork/database/enterprise-edition/downloads/112010-win64soft-094461.html

下載1of2和2of2解壓到同一個目錄點擊安裝 ,安裝過程非常簡單但是要記住你設定的帳號和密碼。

有幾個服務預設會啟動,一般都會啟動。

 

3、配置用戶端PLSQL

PLSQL去CSDN下載有現成的

資料庫 填  地址/服務  第一次我看了也不懂填只好去查資料

 

這樣還是登入不了的,還要配置奇葩OCI 

目錄位址:設定ORACLE的主目錄

OCI地址: 如果主目下BIN檔案的OCI設定了不能用,就要單獨下載一個 OCI.dll,填寫下載的OCI.DLL地址

 

OK這樣就能夠跑起來了

 

Navicat

下載:http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html 

Instant Client for Microsoft Windows (x64)

將它解壓覆蓋到 Navcat 安裝目錄下的  Navicat\Oracle\servers\ora

 

設定剛才覆蓋的地址

OK可以跑起來了

 

4、表名的大寫與小寫

如果使用PLSQL可能不會遇到這種問題他會把你的表自動轉成大寫,假如你用Navcat建一個表為Student ,

你使用 select * from Student是查詢不到這個表的,只能寫成這樣select * from "Student" 所以建表和欄位需要改成大寫 這樣在查詢的時候會很方便。

 

5、參數化的區別

MYSQL SQLITE SQLSERVER 都可以使用@參數化 ,而ORACLE只能使用 : 作為參數符號

 

坑了我最長時間的一個坑,就是參數化的順序問題,這個問題同樣不是很多人都會遇的到,因為我用的是最底層的Ado.net

select * from Student where name=:name and id=:id  

我的參數是  

 new OracleParamer[] { id=1,name="2" }(數組不是這麼聲名只是讓你們看的更清楚些。)

 因為順序不同導致錯誤 所以必須要寫成

 new OracleParamer[] { name="2" ,id=1}

 (經過各種排除法才找到了是順序引的BUG,當時血差點吐出來了,難道Oracle和Access一樣不智能)

解決這個問題的方法就是

將   SqlCommand.BindByName = true; 

 設定後順序問題就解決了,解決問題很容易,難的是找不出問題點在哪兒。

6、預設Oracle只能查詢一條語句

如果你寫成  insert (xxx) values (xxxx);select xxx; 這樣是會報錯的,要加上begin end才可以執行多條 ,貌似 begin end不能用於查詢只能是 update delete insert

 

7、Oracle和SQLServer不一樣沒有identity都是通過序列實現的

建立一個序列,然後行入 insert (id) values (序列名.Nextval)   查詢當前序列用  SELECT 序列名.currval from dual  相當於select @@identity

 

另外OracleSugar.ORM 已經轉製成功了 花了些時間,在測試2天就會發布。

可以先瞭解下 SqlSugar ORM http://www.cnblogs.com/sunkaixuan/p/5654695.html

從SqlServer轉手Oracle的一些坑

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.