讓Oracle SQL Developer連上MS SQL Express
前一篇文章已經成功啟動 32bit 的 Oracle SQL Developer,而且連上 Oracle 11g XE,接下來我又花了幾個小時在搞怎麼連線到 MS SQL Express,超悲情的,但,各位朋友應該不會遇到比我更豬頭的狀況了!
先講結論,因為很多人只是想知道怎麼解決,我豬頭的過程不重要咩!
- jTDS - SQL Server and Sybase JDBC driver:JDBC 1.2 以上版本都可以,有人說 1.3 以上不行,沒有這回事~~我最後用的是 1.3.1 也正常。
- 執行個體名稱要寫在【連接埠】欄位,【主機名稱】輸入「localhost」就好。例如:1433/資料庫名稱;instance=SQLEXPRESS,或者 1433;instance=SQLEXPRESS 再透過擷取資料庫去設定資料庫名稱。
- 請到『本機服務』裡看一下 SQL Server Browser 服務有沒有啟動,要啟動。
- 請用 Sql Server Configuration Manager 檢查 SQLExpress 的通訊協定 TCP/IP 是否有啟用,要啟用。
- 承上述,如果本來 TCP/IP 是停用,啟用後,請記得到『本機服務』裡,重新啟動 SQL Server (SQLEXPRESS) 服務。
首先,當然要先看 Oracle 官方說明該怎麼連上 MS SQL Server:
Configure JDBC Driver in SQL Developer
http://www.oracle.com/technetwork/products/migration/connect-sqlserver-1945229.html
以上兩篇的重點就是,要透過 Oracle SQL Developer 連到 MS SQL,要下載並在工具中設定第三方的 JDBC for MSSQL 才行,於是就到 jTDS - SQL Server and Sybase JDBC driver 下載啦,個人習慣,反正最新版就先下載來用,所以下載解壓縮後,就到 Oracle SQL Developer 的【工具/偏好設定】裡面指定 jdbc 的 jar 檔位置:
指定完,新增連線時,果然就多出現 SQLServer 的頁籤,先填一下基本資料,按【擷取資料庫】鈕。碰!出紅字了:
合理懷疑,因為沒有輸入執行個體名稱咩,所以就填了以下這些,統統炸掉:
localhost, (local), ./SQLExpress, PCName\SQLExpress, /SQLExpress………
正斜線反斜線換來換去、改用 IP……… 怎麼試都不行!於是,就再度拜請 Google 了,有這種問題的人還真多,看了好多種解法,忽然看到有人寫出這個方式:
太棒了,馬上試一下:
那有可能是不能使用 Winodws 認驗,那就改成使用者名稱和密碼,結果還是不行,一樣的錯誤訊息:「狀態 : 失敗 -測試失敗: 無法連線至 localhost 上的 Microsoft SQL Server」。可是爬了好多文章,都是這樣說啊,又搞了好久 ><,後來看到有人寫說 jTDS 的 jdbc 1.3 以上,使用 1433/School;instance=SQLEXPRESS 格式會有問題,所以又回頭去下載 1.2.X 的版本,測一個版本不行,就換一個,把所有 1.2 的版本全測完了,除了錯誤訊息中文、英文不同之外,看到的就是一堆
紅字錯誤訊息!!!
真的又怒又煩啊~~~~工作之餘,繼續爬文,看到這篇:http://jtds.sourceforge.net/faq.html#instanceGetInfo
喔,竟然和 SQL Browser 服務有關,就去本機服務看了一下,果不其然,是停用的狀況,所以就把它啟用了,滿心歡喜的回到 Oracle SQL Developer,確定 jdbc 用的是官網和網友都說可以用的 1.2 版,【測試】鈕大力的按下去…… 幹…什麼去了,又是紅字!!!
狀態 : 失敗 -測試失敗: Server localhost has no instance named SQLEXPRESS.
見鬼了,localhost 上當然有 SQLEXPRESS 執行個體啊,我還用 SQL Server Management Studio 登入確定過咧!繼續抓狂,繼續爬文,當然,也得繼續上班……期間當然也要檢查防火牆之類的(其實我很肯定防火牆是關掉的,但怎麼弄都不行,為防鬼打牆,還是有去檢查),當然也有重開機,只差要不要再灌一台虛機來測試了……
又看到有人說可以用 Microsoft JDBC Driver 4.0 for SQL Server,於是又到微軟官網下載、解壓縮,嗯,裡面有兩個 jar 檔,都試試看,根本行不通,連 SQL Server 的頁籤都不會出現 Orz…
爬來爬去,又爬回到剛剛那篇文章(http://jtds.sourceforge.net/faq.html#instanceGetInfo),看了幾遍,忽然閃過一句話:
(BTW, are you sure your SQL Server is configured to use TCP/IP and that you actually use named instances?)
他 X 的,該不會…該不會我沒啟用 TCP/IP 協定吧?!馬上叫出 Sql Server Configuration Manager 檢查:
髒話差點飆出來!馬上設定為啟用,會跳出一個訊息:
幸好我有用心的看了一下,嗯,要重新啟動 SQLExpress 服務才行,好,故意不重啟,先試一下,還真的又紅字錯誤。於是誠心誠意的把服務重新啟動:
再回到 Oracle SQL Developer,輕輕的按了一下【測試】鈕(千萬不要再紅字啊……):
終於成功了………………………
但是目前我用的 JDBC 1.2,於是立馬改成最新的 1.3.1,明明就可以,可惡!那用 Windows 認證呢?還真不行:
從上一篇文章怎麼安裝和啟動 32bit 的 Oracle SQL Developer,到怎麼連線到 MS SQL Express,搞掉我至少六小時,真是 OOXX…. 希望這篇文章會對有需要安裝 Oracle SQL Developer 的朋友有幫助,謝謝收看。
--------
沒什麼特別的~
不過是一些筆記而已