依舊使用微軟的System.Data.OracleClient對象鏈接Oracle(v12),由於舊代碼的緣由而沒有使用比較新的ODP.NET,折騰了幾天,最開始一直沒有效果,最近兩天總算是折騰好了。html
暫時總結的要點:sql
1)服務器要配置正確。服務器
經過「Net Configuration Assistant」將監聽程序配置好,在新增監聽程序的時候須要區別於已有監聽器的額名稱(LISTENER)和端口號(默認1521)。同時這個也可在文件(安裝目錄下\NETWORK\ADMIN\listener.ora)更新,刪減。網絡
2)服務器的listener要啓動好oracle
可以使用服務器bin目錄中的LSNRCTRL start來啓動對應。若是已啓動,會提示測試
3)對應的用戶名與密碼,服務名稱(不是SID)要記得清楚,權限要足夠.net
首先以管理員登陸sqlplus更新用戶信息,切記切記即將更新的用戶名是以C##開頭,一樣在客戶端也是。賦予connnect,resource等權限(暫時還沒涉及太多)。htm
4)下載的OracleClient對象
能夠從官網下載(須要帳號密碼登陸),或者網盤(連接:https://pan.baidu.com/s/1IOijGWMOYVv-S3OZsjAn7g 密碼:7lvl)解壓后里面有這個文件夾:instantclient_12_2)的版本要對,不然會提示版本問題,貌似與編譯對象的版本有關,沒有測試與服務器版本的關係(按理說是無關的,反正是網絡嘛)。將這個文件夾路徑放寫入PATH環境變量,或者拷貝三個dll(oci.dll,oraociei12.dll,oraons.dll,其中第二個有190M之巨)到程序運行目錄(子目錄貌似不行),基本上就完成了。blog
5)鏈接字符串使用
注意user_name,password,ip_host,service_name,能夠查看服務器的tnsnames.ora中對應服務的字符串
User ID=user_name;Password=password;Data Source=(DESCRIPTION = (ADDRESS_LIST= (ADDRESS = (PROTOCOL = TCP)(HOST = ip_host)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = service_name)))
參照了不少,包括 C# 使用OracleClient連接的新方式 , C# 鏈接 Oracle 的幾種方式,Oracle 12C 新建用戶爲何要在用戶名前加C##?
沒接觸過Oracle,暫時一個禮拜,瞭解了這麼多,有真有假,慢慢摸索。