All Projects → vrogier → Ocilib

vrogier / Ocilib

Licence: apache-2.0
OCILIB (C and C++ Drivers for Oracle) - Open source C and C++ library for accessing Oracle databases

Programming Languages

c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to Ocilib

Kangaroo
SQL client and admin tool for popular databases
Stars: ✭ 127 (-48.16%)
Mutual labels:  oracle, sql
Sqlfiddle3
New version based on vert.x and docker
Stars: ✭ 242 (-1.22%)
Mutual labels:  oracle, sql
Fastapi Crudrouter
A dynamic FastAPI router that automatically creates CRUD routes for your models
Stars: ✭ 159 (-35.1%)
Mutual labels:  api, sql
Gsheets Db Api
A Python DB-API and SQLAlchemy dialect to Google Spreasheets
Stars: ✭ 122 (-50.2%)
Mutual labels:  api, sql
Oracledb exporter
Prometheus Oracle database exporter.
Stars: ✭ 209 (-14.69%)
Mutual labels:  oracle, oracle-database
Directus
Open-Source Data Platform 🐰 — Directus wraps any SQL database with a real-time GraphQL+REST API and an intuitive app for non-technical users.
Stars: ✭ 13,190 (+5283.67%)
Mutual labels:  api, oracle
Rom Sql
SQL support for rom-rb
Stars: ✭ 169 (-31.02%)
Mutual labels:  oracle, sql
Maha
A framework for rapid reporting API development; with out of the box support for high cardinality dimension lookups with druid.
Stars: ✭ 101 (-58.78%)
Mutual labels:  oracle, sql
Supra Api Nodejs
❤️ Node.js REST API boilerplate
Stars: ✭ 182 (-25.71%)
Mutual labels:  api, sql
Stackoverflow Clone
Clone project of a famous Q/A website for developers which is stackoverflow built using MySQL-Express-React-Node 🌐
Stars: ✭ 182 (-25.71%)
Mutual labels:  api, sql
Rocket Api
API敏捷开发框架,用于API接口功能的快速开发。不再定义Controller,Service,Dao,Mybatis,xml,Entity,VO等对象和方法.以springboot starter 形式集成使用
Stars: ✭ 122 (-50.2%)
Mutual labels:  api, sql
Liquibase
Main Liquibase Source
Stars: ✭ 2,910 (+1087.76%)
Mutual labels:  oracle, sql
Dba
Oracle Scripts
Stars: ✭ 114 (-53.47%)
Mutual labels:  oracle, sql
Hybrid multicloud overlay
MutiCloud_Overlay demonstrates a use case of overlay over one or more clouds such as AWS, Azure, GCP, OCI, Alibaba and a vSphere private infrastructure in Hub and spoke topology, point to point topology and in a Single cloud. Overlay protocols IPv6 and IPv4 are independent of underlying infrastructure. This solution can be integrated with encryption and additional security features.
Stars: ✭ 127 (-48.16%)
Mutual labels:  oracle, oci
Sqlfaker
轻量级、易拓展的数据库智能填充Java开源库
Stars: ✭ 109 (-55.51%)
Mutual labels:  oracle, sql
Sqlcheck
Automatically identify anti-patterns in SQL queries
Stars: ✭ 2,062 (+741.63%)
Mutual labels:  oracle, sql
Dockerfiles
Just some Dockerfiles I'm playing around with.
Stars: ✭ 88 (-64.08%)
Mutual labels:  oracle, oracle-database
Cloudsploit
Cloud Security Posture Management (CSPM)
Stars: ✭ 1,338 (+446.12%)
Mutual labels:  oracle, oci
Linq2db
Linq to database provider.
Stars: ✭ 2,211 (+802.45%)
Mutual labels:  oracle, sql
Fluentmigrator
Fluent migrations framework for .NET
Stars: ✭ 2,636 (+975.92%)
Mutual labels:  oracle, sql

OCILIB - C and C++ Drivers for Oracle

Build Status Code Analysis

1. About

OCILIB is an open source and cross platform Oracle Driver that delivers efficient access to Oracle databases.

The OCILIB library :

  • offers a rich, full featured and easy to use API
  • runs on all Oracle platforms
  • is written in pure ISO C99 code with native ISO C Unicode support
  • provides also a C++ API written in standard C++03 with support for some C++11 features
  • Enables high productivity
  • encapsulates OCI (Oracle Call Interface)
  • is the most complete available OCI wrapper

OCILIB is developed by Vincent Rogier. Get the latest package, install and enjoy it!

2. License

The source code is free source code licensed under Apache License, Version 2.0 - see LICENSE file

3. Features

  • ISO C API
  • ISO C ++ API
  • Full ANSI and Unicode support on all platforms (ISO C wide strings or UTF8 strings)
  • Full 32/64 bits compatibility
  • Compatible with all Oracle version >= 8i
  • Automatic adaptation to the runtime Oracle client version
  • Runtime loading of Oracle libraries
  • Built-in error handling (global and thread context)
  • Full support for SQL API and Object API
  • Full support for ALL Oracle SQL and PL/SQL datatypes (scalars, objects, refs, collections, ..)
  • Full support for PL/SQL (blocks, cursors, Index by Tables and Nested tables)
  • Support for non scalar datatype with trough library objects
  • Oracle Pooling (connections and sessions pools)
  • Oracle XA connectivity (X/Open Distributed Transaction Processing XA interface)
  • Oracle AQ (Advanced Queues)
  • Oracle TAF (Transparent Application Failover) and HA (High availability) support
  • Binding array Interface
  • Returning DML feature
  • Scrollable statements
  • Statement cache
  • Direct Path loading
  • Remote Instances Startup/Shutdown
  • Oracle Database Change notification / Continuous Query Notification
  • Oracle warnings support
  • Global and local transactions
  • Describe database schema objects
  • Hash tables API
  • Portable Threads and mutexes API

5. Installation

Windows platforms

  • unzip the archive
  • copy ocilib\include\ocilib.h to any place located in your include’s path
  • copy ocilib\lib32|64\ocilib[x].lib to any place located in your libraries path
  • copy ocilib\lib32|64\ocilib[x].dll to any place located in your windows path

GNU (Unix / Linux) platforms

  • untar the archive
  • $ cd ocilib-x.y.z
  • $ ./configure
  • $ make
  • $ make install (you might need to su to make install)

Make sure Oracle and OCILIB libraries paths are defined in your shared library environment variable You need to provide extra configure parameters when using Instant Clients – see Installation section)

6. Examples

Example of a minimal OCILIB C application

#include "ocilib.h"
 
int main(int argc, char *argv[])
{
    OCI_Connection* cn;
    OCI_Statement* st;
    OCI_Resultset* rs;
 
    OCI_Initialize(NULL, NULL, OCI_ENV_DEFAULT);
 
    cn = OCI_ConnectionCreate("db", "usr", "pwd", OCI_SESSION_DEFAULT);
    st = OCI_StatementCreate(cn);
 
    OCI_ExecuteStmt(st, "select intcol, strcol from table");
 
    rs = OCI_GetResultset(st);
 
    while (OCI_FetchNext(rs))
    {
        printf("%i - %s\n", OCI_GetInt(rs, 1), OCI_GetString(rs,2));
    }
 
    OCI_Cleanup();
 
    return EXIT_SUCCESS;
}

Example of a minimal OCILIB C++ application

#include "ocilib.hpp"
 
using namespace ocilib;
 
int main(void)
{
    try
    {
        Environment::Initialize();
 
        Connection con("db", "usr", "pwd");
 
        Statement st(con);
        st.Execute("select intcol, strcol from table");
 
        Resultset rs = st.GetResultset();
        while (rs.Next())
        {
            std::cout << rs.Get<int>(1) << " - " <<  rs.Get<ostring>(2) << std::endl;
        }
    }
    catch(std::exception &ex)
    {
         std::cout << ex.what() << std::endl;
    }
 
    Environment::Cleanup();
 
    return EXIT_SUCCESS;
}
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].