OCILIB v4.0.0 now available for download !

Hello all,

OCILIB v4.0.0 is now available for download !

C API had been excended and a brand new C++ API is now available :)

  • Introducing new C++ API
  • Added Support for some Oracle 12cR1 new features
  • Enhanced Collections support
  • Refactored Oracle Pooling support
  • Enhanced string conversions
  • Miscellaneous new methods
  • Miscellaneous changes
  • Miscellaneous fixes

See the complete v4.0.0 change log here

Get the release and enjoy it !


OCILIB on twitter !

Hi all,

I’ve created a twitter account for ocilib !

Follow OCILIB on twitter @ocilib

OCILIB valided with Oracle 12c R1

Hi all,

I finally found time for testing OCILIB against Oracle 12c R1 :)

As expected, no problems were found and I’ve added compile and runtime detection of OCI 12cR1.
For the release 4.0.0, some new OCI features introduced in 12cR1 will be supported.

Other ones will be reserved for the release 4.1.0 !

OCILIB 4.0 coming soon !

Hi all,

OCILIB 4.0 is coming soon !

As i mentioned earlier on, this new version introduces a brand new C++ API on top of the OCILIB C API. (see my previous post here).
There are also some minor enhancement in the C API.
I’m still (!!) working on the C++ documentation and fixing final details in the C++ API.

Version 4.0 should be released in October 2013 !

OCILIB C++ API coming soon !

Hello all !

OCILIB C++ API is coming soon !
Thus OCILIB will become a C and C++ driver for Oracle
Code is already available from the OCILIB SVN repository.
It is a single C++ header file that wraps the entire OCILIB C API .
It uses and exposes C++ objects and is based on the standard library and templates.
No usage of new or delete, just objects that automatically handle the lifetime of OCILIB handles :) Automatic and built-in object scope management !
I’m still working on the documentation
C main demo application and various C demos have been ported to C++.

Just have a look and try it :)

here is a basic example :

#include "ocilib.hpp"

using namespace ocilib;

int main(void)

        Connection con("db", "usr", "pwd");

        Statement st(con);
        st.Execute("select * from products");

        Resultset rs = st.GetResultset();
        while (rs.Next())
            std::cout << "code:" << rs.Get(1) << " name: " <<  rs.Get(2) << std::endl;

        std::cout << "=> Total fetched rows : " << rs.GetCount() << std::endl;

    catch(Exception &ex)
         std::cout << ex.GetMessage() << std::endl;


    return EXIT_SUCCESS;