{"id":13493290,"url":"https://github.com/vrogier/ocilib","last_synced_at":"2025-03-28T11:32:22.924Z","repository":{"id":33722253,"uuid":"37376268","full_name":"vrogier/ocilib","owner":"vrogier","description":"OCILIB (C and C++ Drivers for Oracle) - Open source C and C++ library for accessing Oracle databases","archived":false,"fork":false,"pushed_at":"2024-09-08T18:39:28.000Z","size":18280,"stargazers_count":321,"open_issues_count":21,"forks_count":117,"subscribers_count":41,"default_branch":"master","last_synced_at":"2024-09-15T12:01:19.086Z","etag":null,"topics":["api","driver","oci","ocilib","oracle","oracle-database","sql"],"latest_commit_sha":null,"homepage":"http://www.ocilib.net","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vrogier.png","metadata":{"files":{"readme":"README","changelog":"ChangeLog","contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS","dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-06-13T15:20:02.000Z","updated_at":"2024-08-13T05:20:53.000Z","dependencies_parsed_at":"2023-02-19T12:00:47.436Z","dependency_job_id":"d579d57a-cc75-44bc-9549-c51336a3cb84","html_url":"https://github.com/vrogier/ocilib","commit_stats":null,"previous_names":[],"tags_count":24,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vrogier%2Focilib","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vrogier%2Focilib/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vrogier%2Focilib/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vrogier%2Focilib/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vrogier","download_url":"https://codeload.github.com/vrogier/ocilib/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":222376246,"owners_count":16974312,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","driver","oci","ocilib","oracle","oracle-database","sql"],"created_at":"2024-07-31T19:01:13.902Z","updated_at":"2025-03-28T11:32:22.917Z","avatar_url":"https://github.com/vrogier.png","language":"C","readme":" /*\n * OCILIB - C Driver for Oracle (C Wrapper for Oracle OCI)\n *\n * Website: http://www.ocilib.net\n *\n * Copyright (c) 2007-2025 Vincent ROGIER \u003cvince.rogier@ocilib.net\u003e\n *\n */\n \n===========================================================================\nDESCRIPTION \n===========================================================================\n\nOCILIB is an open source and portable Oracle Driver that delivers really fast and reliable access to Oracle databases.\n\nThe OCILIB library:\n\n    * offers a rich, full featured and easy to use API\n    * runs on all Oracle platforms\n    * is written in pure ISO C code with native ISO C Unicode support\n    * encapsulates OCI (Oracle Call Interface)\n    * is the most complete available OCI wrapper\n \n===========================================================================\nVERSION \n===========================================================================\n\nsee VERSION file.\n\n\n===========================================================================\nFEATURES \n===========================================================================\n   \n    * Full ANSI and Unicode support on all platforms (ISO C wide strings or UTF8 strings)\n    * Full 32/64 bits compatibility\n    * Compatible with all Oracle version \u003e= 8.0\n    * Automatic adaptation to the runtime Oracle client version\n    * Runtime loading of Oracle libraries\n    * Built-in error handling (global and thread context)\n    * Full support for SQL API and Object API\n    * Full support for ALL Oracle SQL and PL/SQL datatypes (scalars, objects, refs, collections, ..)\n    * Full support for PL/SQL (blocks, cursors, Index by Tables and Nested tables)\n    * Support for non scalar datatype with trough library objects \n    * Oracle Pooling (connections and sessions pools)\n    * Oracle XA connectivity (X/Open Distributed Transaction Processing XA interface)\n    * Oracle AQ (Advanced Queues)\n    * Oracle TAF (Transparent Application Failover) and HA (High availabality) support \n    * Binding array Interface\n    * Returning DML feature\n    * Scrollable statements\n    * Statement cache\n    * Direct Path loading\n    * Remote Instances Startup/Shutdown\n    * Oracle Database Change notification / Continuous Query Notification\n    * Oracle warnings support\n    * Global and local transactions \n    * Describe database schema objects\n    * Hash tables API\n    * Portable Threads and mutexes API\n    * Partial support for XMLTYPE (fetching only as string content)\n\n===========================================================================\nDOWNLOAD \n===========================================================================\n\nAvailable at:\n\nURL : http://www.ocilib.net\n\n===========================================================================\nLICENSE\n===========================================================================\n\nThe source code is free source code licensed under the Apache License, Version 2.0.\n\n(see the file LICENSE)\n\n===========================================================================\nCOMPATIBILITY\n===========================================================================\n\nThis current source is pure ISO C and should compile with any C90 Compliant compiler\nfor ANSI version and C99 for Unicode versions.\n \n Validated Platforms (32/64bits): \n \n - Windows \n - UP/UX \n - Linux \n - Solaris \n - AIX\n - Mac OS X\n - OpenvMS (full validation pending)\n\n Validated Compilers : \n\n - GCC / MinGW\n - MS Compilers \n - XLC  \n - CCs \n - LabView\n\n Validated Oracle versions : \n \n - Oracle 8 \n - Oracle 9\n - Oracle 10\n - Oracle 11\n - Oracle 12\n - Oracle 18\n - Oracle 19\n - Oracle 21\n  \n===========================================================================\nINSTALLATION AND LIBRARY BUILDS ON MS WINDOWS\n===========================================================================\n\nPrecompiled OCILIB dynamic libraries are provided for Microsoft Windows :\n\n     - ocilib\\lib32 : 32bits binaires\n     - ocilib\\lib64 : 64bits binaires\n\nPrecompiled OCILIB static libraries are provided for Microsoft Windows :\n\n     - ocilib\\lib32 : 32bits binaries\n\n2 methods :\n\n1/\n     - add the ocilib\\include  directory to your include's path\n     - add the ocilib\\lib32|64 directory to your libraries path\n     - add the ocilib\\lib32|64 directory to your windows path\n\n2/\n     - copy  ocilib\\include\\ocilib.h to any place located in your include's path\n     - copy  ocilib\\lib32|64\\ocilib[x].lib to any place located in your libraries path\n     - copy  ocilib\\lib32|64\\ocilib[x].dll to any place located in your windows path\n     - copy  ocilib\\lib32\\libocilib[x].a to any place located in your windows path\n\n* BUILDING OCILIB FROM SOURCES *\n\nOCILIB supports 3 builds options on Windows platforms :\n\n1/ oracle import (linkage or runtime loading)\n\nOn win32, the provided build were compiled using is runtime loading.\nIf you want to import Oracle OCI at linkage time , you need to rebuild the libraries\n\nDefines :\n\n     - OCI_IMPORT_LINKAGE for linkage at compile time\n     - OCI_IMPORT_RUNTIME for runtime loading\n\nif no import mode is set, the library sets the default to OCI_IMPORT_LINKAGE\n\n2/ charset (ansi, wide, mixed)\n\nthis pakcage provides 2 OCILIB Dlls (32bits and 64bits) :\n\n      - ociliba.dll (ANSI / UTF8 version)\n      - ocilibw.dll (UNICODE/UFT16/USC2/wchar_t version) \n\nthis package provides 3 OCILIB static libs (32 bits only) :\n\n      - libociliba.a (ANSI / UTF8 version)\n      - libocilibw.a (UNICODE/UFT16/USC2/wchar_t version)  \n\nDefines :\n\n     - OCI_CHARSET_ANSI for ansi / UTF8\n     - OCI_CHARSET_WIDE for unicode (wide strings)\n\nif no charset mode is set, the library sets the default to OCI_CHARSET_ANSI \n\n3/ calling convention\n\nOn win32, the default calling convention is __stdcall.\nSo the OCILIB function using a variable number or parameters (OCI_xxxxFmt) won't work\nIf you need them, modify the preprocessor options to change OCI_API to __cdecl and rebuild !\n\nDefines :\n\n     - OCI_API =  __stdcall to link OCILIB to any language independent module\n     - OCI_API = __cdecl (or no value) for C/C++ only !\n\nif no charset mode is set, the library sets the default to no value\n\n\nTo rebuild the dynamic libraries (MS Visual Studio) :\n\n      - open the dll project ocilib\\proj\\dll\\ocilib_dll_vs200x.sln\n      - do a batch build\n\nTo rebuild the static libraries (Code::blocks) :\n\n      - open the static project ocilib\\proj\\mingw\\ocilib_static_lib_mingw.cbp\n      - do a batch build\n\n* BUILDING THE DEMO *\n\n1/ run an already built demo\n\n     - run ocilib_demo.exe located in ocilib\\proj\\test\\Win32|64\\release [build]\n\n2/ build a demo \n\n     - open the test project ocilib\\proj\\test\\ocilib_demo_vs200x.sln or ocilib_demo_codeblocks.cbp\n     - choose an configuration\n     - build\n\n* MAKE ANY PROGRAM WITH OCILIB *\n\n1/ use the prebuilt Dlls\n\n     - add ocilib/include folder to your compiler includes path\n     - add ocilib/lib folder to your linker library path\n     - For MinGW only, rename/copy ocilib[x].lib to libocilib[x].a\n     - add ocilib[x].lib (or -locilib[x] from MinGw) to your linking options\n     - add OCI_CHARSET_XXX macro to your preprocessor options\n     - add OCI_API macro definition to your preprocessor options (set it to __stdcall)\n\n2/ use the prebuilt Dlls\n\n     - add ocilib/include folder to your compiler includes path\n     - add ocilib/lib folder to your linker library path\n     - add libocilib[x].a to your linking options\n     - add OCI_CHARSET_XXX macro to your preprocessor options\n     - add OCI_API macro definition to your preprocessor options (set it to __stdcall)\n\n3/ link source code\n\n     - add the source files located in ocilib/src to your project and defines the 3 build options\n \n \n===========================================================================\nINSTALLATION AND LIBRARY BUILDS ON LINUX AND UNIX BASED SYSTEMS\n===========================================================================\n\nOCILIB is available on MS Windows and Linux /Unix systems.\n\n* BUILDING OCILIB FROM SOURCES *\n\nInstallation on Linux / Unix systems\n\nsee INSTALL file for installation options.\n\nTo install, use GNU install :\n\n\u003e./configure\n\u003e./make\n\u003e./make install\n\nyou migth need to `su` to make install\n\nMake sure Oracle library path and the ocilib library path are defined in\nyour shared library variable (LB_LIBRARY_PATH, LDPATH, SHLIB_PATH....)\n\nCustom install options\n\n`--with-oracle-charset'\n\n     Specify charset uses with Oracle OCI libraries\n     Possible values are : ansi|wide\n     Default is : ansi\n\n`--with-oracle-import'\n\n     Specify how OCILIB is importing Oracle OCI libraries\n     Possible values are : linkage|runtime\n     Default is : linkage\n     in runtime import mode, Oracle libraries and environment are \n     not checked during compilation time.\n\n`--with-oracle-home'\n\n     Specify your Oracle home location.  (for regular Oracle client installation)\n     Default is $ORACLE_HOME\n     Only used if import mode is linkage\n\n`--with-oracle-headers-path'\n\n     Specify your OCI public headers path (for Oracle Instant client)\n     Only used if import mode is linkage\n\n`--with-oracle-lib-path'\n\n     Specify your OCI shared library path (for Oracle Instant client)\n     this directory must contains the libclntsh library.\n     You might need to create a symbolic link without version number.\n     Only used if import mode is linkage\n\n`--with-custom-loader'\n\n     Specify the linker the flag for adding support for loaders other than ld\n     Default value is '-ldl'.\n     Only used if import mode is runtime\n\n\n* BUILDING THE DEMO *\n\ncopy demo.c and Makefile_demo from the folder $(OCILIB_PREFIX)/share/doc/ocilib/demo\n\n(OCILIB_PREFIX is the installation lib folder - default is /usr/local)\n\nto any of our full access directory and then compile :\n\n\u003emake -f Makefile_demo\n\n* MAKE ANY PROGRAM WITH OCILIB *\n\nAdd the following to your makefile\n\n1/ define charset\n\nadd -DOCI_CHARSET_xxxx  to your CFLAGS\n\nwhere xxxx can be : ANSI | WIDE\n\n2 / link OCILIB library\n\nadd -L$(OCILIB_PREFIX)/lib -locilib to your LDFLAGS\n\nwhere OCILIB_PREFIX is the installation lib folder - default is /usr/local\n\n2 / link Oracle library (if import mode = linkage which is default)\n\nadd -L$(ORACLE_HOME)/lib -lclntsh to your LDFLAGS\n\n\n===========================================================================\nFEED BACK, BUG REPORTS\n===========================================================================\n\nURL : http://www.ocilib.net/support\n\n===========================================================================\nDOCUMENTATION\n===========================================================================\n\nIncluded in the library archive, it's installed in $(OCILIB_PREFIX)/share/doc/ocilib/html/\n\nOnline : http://www.ocilib.net/documentation/html\n\n===========================================================================\nUSE OF OCILIB\n===========================================================================\n\nPlease, Let me know about projects using OCILIB.\n\nSend me a mail at \u003cvince.rogier@ocilib.net\u003e with a brief description of your project\n\nThanks.\n","funding_links":[],"categories":["C"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvrogier%2Focilib","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvrogier%2Focilib","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvrogier%2Focilib/lists"}