Oracle Aggregate C++ Library allows C++ programmers to easily create new aggregate functions for Oracle.
Oracle Aggregate C++ Library can be used as a glue library to existing C++ and C libraries. Detailed knowledge of the OCI aggregate interface is not required to use the library.
With automatic conversion of Oracle built-in types to C++ types it is possible to use the library without using any OCI functions directly.
The Oracle OCI interface for aggregate functions provides a straightforward way to implement aggregate functions in C or C++. There is, however, a certain amount of bookkeeping that needs to be performed in order to use the interface. The goal of this library is to take care of all the bookkeeping details for your, all you need to provide is the aggregate function itself. This makes it particularly easy to use existing C++ code and libraries in Oracle aggregate functions.
The way the library works is that it defines the shared library entry point functions required by Oracle. The entry point functions simply forward all arguments to the static functions of the Aggregate class.
The Aggregate class along with a number of helper classes and functions takes care of converting arguments, configuring the environment, creating implementation instances and such. When everything is ready the arguments originally sent by Oracle are passed to your aggregate implementation.