chrix75
Hi,
I continue my Elixir exploration and now I’m trying to fetch data from our databases that are Oracle DB.
I’ve found I must use the Erlang :odbc module and pass through ODBC connection.
I’ve installed the Oracle ODBC driver and set a Data Source but when I try to connect, that fails.
Below my actions and their results:
iex(18)> :odbc.start()
:ok
iex(19)> {ok, ref} = :odbc.connect('DSN=SIRENE_REC;UID=account;PWD=the_password', [])
13:25:21.953 [error] [79, 68, 66, 67, 58, 32, 114, 101, 99, 101, 105, 118, 101, 100, 32, 117, 110, 101, 120, 112, 101, 99, 116, 101, 100, 32, 105, 110, 102, 111, 58, 32, [123, ['tcp_closed', 44, '#Port<0.1505>'], 125], '\n'] {:error, :connection_closed}
13:25:21.954 [error] GenServer #PID<0.125.0> terminating
** (stop) {:port_exit, :collecting_of_driver_information_faild} Last message: {#Port<0.1503>, {:exit_status, 23}} State: {:state, #Port<0.1503>, {#PID<0.81.0>, #Reference<0.1271860022.1836056577.135740>}, #PID<0.81.0>, :undefined, :on, :undefined, :undefined, :on, :connecting, :undefined, 0, [#Port<0.1501>, #Port<0.1502>], #Port<0.1504>, #Port<0.1505>}
For my noob level, I’m lost ![]()
Trending in Questions
Other Trending Topics
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #deployment
- #library
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #elixirconf
- #channels
- #exunit
- #discussion
- #code-sync
- #javascript
- #podcasts
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ecto-query
- #elixir-ls
- #blog-post
- #ai
- #elixirconf-us
- #phoenix_html
- #iex
- #graphql
- #genstage
- #websockets
- #supervisor
- #advent-of-code
- #distillery
- #processes
- #api
- #forms
- #hex
- #security
- #metaprogramming










Showing Posts 1 to 9- Show Best Posts
- Show All (oldest first)
- Show All (newest first)
NobbZ
Have you done the prechecks from the Erlang ODBC Guide?
In the getting started section there are some things listed to consider and make sure first:
The payload of the error, which got mangled in some way (perhaps something in the chain has problem with IO-Lists?) says roughly that there was an unexpected
{'tcp_closed', '#Port<0.1505>'}. Further I have to assume that this is printed by some erlang subroutine and therefore'tcp_closedis an atom. Anyway. It boils down to a closed TCP connection, which may have many reasons, but I’ve not used any ODBC so far.Therefore I want to ask you if you can access to that database from another program that uses ODBC, does this program see the same set of environment variables as your erlang program? Has your version of erlang been compiled with a proper value for
--with-odbc?chrix75
My sole test is the “Test connection” from the ODBC configuration window and the connection works in that case. I don’t have other program using ODBC (currently, all programs are in Java and we use JDBC).
I use the Erlang version provided by the Elixir Windows installer.
About Erlang compliation options, I don’t know
I’ve no idea how it is compiled.
chrix75
I tried my ODBC connection after installing MS ODBC Test program.
The connection works fine with this tools (connection, queries, …).
chrix75
I’ve just read how compile Erlang OTP on Windows
When I see all needed steps, I’m discouraged.
OvermindDL1
Instead of using ODBC (which kind of sucks), have you thought about using a direct Oracle driver like jamdb_oracle or so?
I personally mount my work Oracle database as a FDW inside my PostgreSQL database. ^.^
epaulf
https://github.com/epaulf/Oracledbex
OvermindDL1
Interesting, how does it compare to this?
https://github.com/erlangbureau/jamdb_oracle
CharlesO
it’s still basically just Erlang ODBC under the covers.
Do you know of any attempt to do a
JDBC - ErlangBridge?I have a reporting tool built on Elixir using ODBC, but a prospective new client is on
T24 (JBASE), i’m looking for possible ways to connect, so far Erlang ODBC does not work for this as i do not have a suitable driver.SQL Squirrel is able to connect via jbase-jdbc, hence the search for a jdbc-erlang connector.
T24 JBASE has a
jbase_agentthat is basically a socket acceptor, so it makes me hopeful that a pure Elixir/ erlang driver might even be the way to go (if i can just understand how jdbc interacts with JBASE)OvermindDL1
All the lower-case
jprefixes make me think java. You could always write a Java Erlang node (the java api comes with the erlang distribution) for Elixir to talk to. ^.^