有誰知道如何從一個Erlang客戶端連接到Oracle在Linux?我猜ODBC驅動程序是必需的。連接二郎客戶到Oracle
回答
根據Erlang的文檔ODBC is the way to go。
有是一個Erlang ODBC API 「應該在所有的Unix方言,包括Linux操作系統上運行....但是目前我們只測試用於Solaris,Windows 2000中,Windows XP和NT」。 Find out more。
有針對Linux的ODBC驅動程序。如果幸運的話,你的發行版已經安裝了一個。 Find out more。
真的嗎? Erlang中真的沒有本地數據庫驅動程序嗎? – 2014-10-30 02:33:01
====答案可能是,如果在Windows上非常有用,但可能包含有用的信息爲Linux以及=====
現在,首先,我們需要下載的Oracle客戶端或Oracle數據庫本身並從這裏安裝:http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html。 Oracle安裝並創建一個名爲oracle
的文件夾(在Windows上)。在此文件夾內,您通常會找到它的$ HOME文件夾:C:\oracle\product\10.2.0\db_1
。如果您使用的是Windows,因此,當你通過閱讀這篇訪問ODBC配置:http://ozinisle.blogspot.com/2011/10/configuring-odbc-connection-for-oracle.html那麼您將創建您所選擇的新Data Source Name (DSN)
。步驟大致如下:
1.選擇系統DSN
2.創建新數據源
3.向下滾動以在OraDB中選擇Oracle {Vsn} _home1
4.指定用戶名(UID),密碼
5.記下您選擇的驅動程序名稱,記下您輸入的數據源名稱。
6.測試連接,並確保窗戶說它很好。
現在,在此之後,我們去erlang一邊。看看這個模塊,它應該啓動你與oracle進行通信。
-module(oracle_client). -compile(export_all).
-define(CONNECT_OPTIONS,[ {auto_commit,on}, {scrollable_cursors, off} ]). -define(CONNECT_STRING,"DSN=data_source;UID=uid;PWD=password;DRIVER=Oracle in OraDb10g_home1").
connect()-> odbc:start(), try odbc:connect(?CONNECT_STRING,?CONNECT_OPTIONS) of {ok,ConnObject} -> {true,ConnObject}; Any -> {error,Any} catch E:E2 -> {exception,{E,E2}} end.
send_sql(ConnObject, SQLQuery)-> odbc:sql_query(ConnObject, SQLQuery).
二郎ODBC服務器必須先運行。 Erlang ODBC會詢問你一個連接字符串和選項。首先請注意,大多數Oracle驅動程序都需要關閉可滾動遊標。然後,在連接字符串中,您將被要求輸入有效的UID(用戶名),密碼,DSN(數據源名稱)和驅動程序名稱,所有這些都與您在上述步驟中以ODBC ODBC連接創建DSN的方式完全相同。
這應該沒問題。請注意,您應該堅持自己的Oracle驅動程序,並避免使用第三方ODBC Oracle驅動程序。我有從使用其他第三方驅動程序的經驗,因爲說了一千萬個連接後,驅動程序開始要求金錢/許可證,並阻止您的流量到達Oracle數據庫。
如果您遇到任何問題,請告訴我。上面的模塊有點粗糙,不要使用,因爲它只是一個shell測試模塊,否則你需要說一個gen_server,它將持有連接對象,以便其他處理只是與它保持通信。只要您成功地在您的計算機上安裝了Oracle DB或客戶端,即可設置數據源名稱,那麼該模塊將幫助您,否則在設置ODBC連接時會遇到大多數挑戰。
=== Linux ===
對於Linux,我想你需要獲得像 Easy Soft ODBC Drivers或UnixODBC這樣的odbc庫。然後嘗試按照上面的窗口設置它,然後使用上面提供的Erlang模塊。它應該仍然有效。由於在設置和配置ODBC庫方面遇到很多挑戰,恐怕我總是從Windows和NOT Linux連接到oracle(給它一個鏡頭,您可能會成功設置Unix ODBC或Easy Soft ODBC庫),否則, Erlang的一部分被整理出來。
謝謝,我會嘗試發佈更新 – kostas 2012-02-14 08:10:26
- 1. 二郎EPMD連接問題
- 2. 二郎ODBC連接挑戰
- 3. 使用Oracle客戶端連接到遠程Oracle數據庫
- 4. 使用oracle即時客戶端從excel連接到oracle
- 5. 二郎 - 如何連接位串
- 6. 二郎字符串列表連接
- 7. Oracle客戶端服務器連接
- 8. C接口二郎
- 9. 客戶端到客戶端的連接?
- 10. 二郎觀察員連接到遠程節點
- 11. 二郎得到確切大小的SSL連接的存儲
- 12. Oracle 11g 64位客戶端連接到8i
- 13. Oracle 11g客戶端連接到10g和11g數據庫
- 14. 使用11g客戶端將Excel 2010 VBA連接到Oracle
- 15. 連接到Oracle DB11克與10g客戶端 - 語法錯誤
- 16. 沒有安裝Oracle客戶端的Oracle遠程連接
- 17. Oracle客戶端和Oracle服務器之間的安全連接
- 18. 二郎:優先接收
- 19. 如何將客戶連接到帳戶?
- 20. 如何連接到已註冊的節點(二郎),並從其他應用程序二郎
- 21. 連接客戶端
- 22. Oracle JDBC連接到錯誤的用戶
- 23. 的RabbitMQ二郎客戶端,由C系統()內escript調用
- 24. 處理二郎inets HTTP客戶端錯誤
- 25. 二郎:加密,OID到NamedCurve
- 26. 二郎錯誤收到#Port
- 27. Pyodbc連接到Oracle
- 28. 連接IBM bluemix使用沃森物聯網二郎MQTT WebSocket的客戶端上的端口443
- 29. 二進制到整型 - >二郎
- 30. 整數到二進制二郎
用oracle保持可滾動遊標關閉。 odbc連接選項'{scrollable_cursors,off}'。 – 2012-02-12 10:46:16
閱讀我在POSTED下面的答案,它應該幫助 – 2012-02-14 03:37:52