forked from vrogier/ocilib
-
Notifications
You must be signed in to change notification settings - Fork 0
/
README
226 lines (157 loc) · 6.53 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
****************************************************************************
+----------------------------------------------------------------------+
| |
| OCILIB - C Driver for Oracle |
| |
| (C Wrapper for Oracle OCI) |
| |
+----------------------------------------------------------------------+
| |
| Website : http://www.ocilib.net |
| |
+----------------------------------------------------------------------+
| |
| Copyright (c) 2007-2015 Vincent ROGIER |
| |
+----------------------------------------------------------------------+
| |
| (GNU PACKAGE) |
| |
+----------------------------------------------------------------------+
****************************************************************************
DESCRIPTION
===========
OCILIB is an open source and portable Oracle Driver that delivers really fast and reliable 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 C code with native ISO C Unicode support
* encapsulates OCI (Oracle Call Interface)
* is the most complete available OCI wrapper
VERSION
========
see VERSION file.
FEATURES
========
* Full Ansi and Unicode support on all platforms (ISO C wide strings or UTF8 strings)
* Full 32/64 bits compatibility
* Comptabile with all Oracle version >= 8i
* Automatic adaptation to the runtime Oracle client version
* Runtime loading of Oracle libraries
* Builtin 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 (Advanded Queues)
* Oracle TAF (Transparent Application Failover) and HA (High availabality) 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
DOWNLOAD
========
Available at :
URL : http://www.ocilib.net
LICENSE
=======
see COPYING file.
COMPATIBILITY
=============
This current source is pure ISO C and should compile with any C90 Compliant compiler
for ansi version and C99 for unicode versions.
Validated Platforms (32/64bits):
- Windows
- UP/UX
- Linux
- Solaris
- AIX
- Mac OS X
- OpenvMS (full validation pending)
Validated Compilers :
- GCC / MinGW
- MS Compilers
- XLC
- CCs
- LabView
Validated Oracle versions :
- Oracle 8i
- Oracle 9i
- Oracle 10g
- Oracle 11g
INSTALLATION AND LIBRARY BUILDS
===============================
see INSTALL file for installation options.
To install, use GNU install :
>./configure
>./make
>./make install
you migth need to `su` to make install
Make sure Oracle library path and the ocilib library path are defined in
your shared library variable (LB_LIBRARY_PATH, LDPATH, SHLIB_PATH....)
Custom install options
`--with-oracle-charset'
Specify charset uses with Oracle OCI libraries
Possible values are : ansi|wide
Default is : ansi
`--with-oracle-import'
Specify how OCILIB is importing Oracle OCI libraries
Possible values are : linkage|runtime
Default is : linkage
in runtime import mode, Oracle libraries and environment are
not checked during compilation time.
`--with-oracle-home'
Specify your Oracle home location. (for regular Oracle client installation)
Default is $ORACLE_HOME
Only used if import mode is linkage
`--with-oracle-headers-path'
Specify your OCI public headers path (for Oracle Instant client)
Only used if import mode is linkage
`--with-oracle-lib-path'
Specify your OCI shared library path (for Oracle Instant client)
this directory must contains the libclntsh library.
You might need to create a symbolic link without version number.
Only used if import mode is linkage
`--with-custom-loader'
Specify the linker the flag for adding support for loaders other than ld
Default value is '-ldl'.
Only used if import mode is runtime
BUILD DEMO
==========
copy demo.c and Makefile_demo from the folder $(OCILIB_PREFIX)/share/doc/ocilib/demo
(OCILIB_PREFIX is the installation lib folder - default is /usr/local)
to any of our full access directory and then compile :
>make -f Makefile_demo
MAKE ANY PROGRAM WITH OCILIB
============================
Add the following to your makefile
1/ define charset
add -DOCI_CHARSET_xxxx to your CFLAGS
where xxxx can be : ANSI | WIDE
2 / link OCILIB library
add -L$(OCILIB_PREFIX)/lib -locilib to your LDFLAGS
where OCILIB_PREFIX is the installation lib folder - default is /usr/local
2 / link Oracle library (if import mode = linkage which is default)
add -L$(ORACLE_HOME)/lib -lclntsh to your LDFLAGS
FEED BACK, BUG REPORTS
======================
URL : http://www.ocilib.net/support
DOCUMENTATION
=============
Included in the library archive, it's installed in $(OCILIB_PREFIX)/share/doc/ocilib/html/
Online : http://www.ocilib.net/documentation/html
USE OF OCILIB
=============
Please, Let me know about projects using OCILIB.
Send me a mail at <[email protected]> with a brief description of your project
Thanks.