Erlang and Oracle

Sean Hinde <>
Tue Feb 25 19:39:37 CET 2003


I started a native oci driver a couple of years back. Then mnesia got better
at large databases and I kind lost the will to do C.

There was also a bug in the OCI library that it would dump core if you ever
tried to close down the reference to it (Oracle accepted this as a known bug
and proposed a workaround of setting some environment variable which
prevented ever unloading a shared lib. About a year later they mailed me to
say the the bug report had been updated but I had forgotten my support
password and never looked it up).

The current state is that I got half way through implementing some new thing
and never finished it, it might not even compile anymore.. If you want it
then you can have it, and I can try to help explain how it was supposed to

When it worked it was really fast :-)


> -----Original Message-----
> From: Shawn Pearce [mailto:]
> Sent: 25 February 2003 18:27
> To: 
> Subject: Erlang and Oracle
> I almost have my team ready to dive into Erlang as the backbone of
> our server.  Erlang fits our problems perfectly as far as its
> concurrency features go, better than anything else we've tried to
> do in Java and JNI.  One problem.
> We need to talk to Oracle.
> The last time I saw Erlang talking to Oracle was either the researchy
> OraErl project (won't cut it for us) or the Erlang/ODBC driver, which
> is only available on Windows (we want to run on Solaris or Linux).
> Do the Erlang masters have any recommendations?
> Or do we have to abandon all hope?  :-(
> I've come up with a few possibilities thus far:
> 	- About two years ago I had written a decent 
> Erlang<->JDBC binding
> 	  by using JInterface to send and receive messages through
> 	  to Java.  Java threads acted as "database connections"
> 	  for Erlang and sent everything through JDBC.  It was
> 	  slower than I would like now, but allowed me talk to Oracle
> 	  and provide nice mapped associations like using the Erlang
> 	  atom 'undefined' for SQL NULL in the database.
> 	- Write a SQL Relay ( client
> 	  in Erlang and use SQL Relay to access Oracle.
> 	- Write an Erlang port program to use OCI8 and connect 
> to Oracle.
> 	- Use XML-RPC to talk to something that can talk to Oracle.
> I need the Erlang<->Oracle stuff up as fast as possible for this to
> work. :-(
> With the size of of the data we have to manage, Mnesia is out.  We're
> dealing with about .5 TB now and will be growing it over the next year
> to 1 TB and possibly higher.  (We just ordered our second 1 
> TB database
> server.)
> -- 
> Shawn.
>   Water, taken in moderation cannot hurt anybody.
>   		-- Mark Twain

This email (including attachments) is confidential.  If you have received
this email in error please notify the sender immediately and delete this
email from your system without copying or disseminating it or placing any
reliance upon its contents.  We cannot accept liability for any breaches of
confidence arising through use of email.  Any opinions expressed in this
email (including attachments) are those of the author and do not necessarily
reflect our opinions.  We will not accept responsibility for any commitments
made by our employees outside the scope of our business.  We do not warrant
the accuracy or completeness of such information.

More information about the erlang-questions mailing list