27#include "ocilibcpp/core.hpp"
28#include "ocilibcpp/support.hpp"
55 Oracle10gR1 = OCI_10_1,
56 Oracle10gR2 = OCI_10_2,
57 Oracle11gR1 = OCI_11_1,
58 Oracle11gR2 = OCI_11_2,
59 Oracle12cR1 = OCI_12_1,
60 Oracle12cR2 = OCI_12_2,
61 Oracle18cR1 = OCI_18_1,
62 Oracle18cR2 = OCI_18_2,
63 Oracle18cR3 = OCI_18_3,
64 Oracle18cR4 = OCI_18_4,
65 Oracle18cR5 = OCI_18_5,
66 Oracle19cR3 = OCI_19_3,
67 Oracle19cR5 = OCI_19_5,
68 Oracle21cR3 = OCI_21_3
283 LobBinary = OCI_BLOB,
285 LobCharacter = OCI_CLOB,
287 LobNationalCharacter = OCI_NCLOB
307 LongBinary = OCI_BLONG,
309 LongCharacter = OCI_CLONG
444 unsigned int GetRow()
const;
454 const char*
what() const noexcept override;
472 void SetWhat(const otext* value) noexcept;
473 void CopyWhat(const
char* value) noexcept;
523 SourceInstance = OCI_HES_INSTANCE,
525 SourceDatabase = OCI_HES_DATABASE,
527 SourceNode = OCI_HES_NODE,
529 SourceService = OCI_HES_SERVICE,
531 SourceServiceMember = OCI_HES_SERVICE_MEMBER,
533 SourceASMInstance = OCI_HES_ASM_INSTANCE,
535 SourcePreConnect = OCI_HES_PRECONNECT
555 EventDown = OCI_HET_DOWN,
577 Default = OCI_ENV_DEFAULT,
579 Threaded = OCI_ENV_THREADED,
581 Events = OCI_ENV_EVENTS
601 ImportLinkage = OCI_IMPORT_MODE_LINKAGE,
603 ImportRuntime = OCI_IMPORT_MODE_RUNTIME
623 CharsetAnsi = OCI_CHAR_ANSI,
625 CharsetWide = OCI_CHAR_WIDE
645 SessionDefault = OCI_SESSION_DEFAULT,
647 SessionXa = OCI_SESSION_XA,
649 SessionSysDba = OCI_SESSION_SYSDBA,
651 SessionSysOper = OCI_SESSION_SYSOPER,
653 SessionSysAsm = OCI_SESSION_SYSASM,
655 SessionSysBkp = OCI_SESSION_SYSBKP,
657 SessionSysDgD = OCI_SESSION_SYSDGD,
659 SessionSysKmt = OCI_SESSION_SYSKMT,
661 SessionSysRac = OCI_SESSION_SYSRAC,
663 SessionPreAuth = OCI_SESSION_PRELIM_AUTH
683 StartOnly = OCI_DB_SPM_START,
685 StartMount = OCI_DB_SPM_MOUNT,
687 StartOpen = OCI_DB_SPM_OPEN,
689 StartFull = OCI_DB_SPM_FULL
709 StartDefault = OCI_DB_SPF_DEFAULT,
711 StartForce = OCI_DB_SPF_FORCE,
713 StartRestrict = OCI_DB_SPF_RESTRICT
733 ShutdownOnly = OCI_DB_SDM_SHUTDOWN,
735 ShutdownClose = OCI_DB_SDM_CLOSE,
737 ShutdownDismount = OCI_DB_SDM_DISMOUNT,
739 ShutdownFull = OCI_DB_SDM_FULL
760 ShutdowntDefault = OCI_DB_SDF_DEFAULT,
763 ShutdowTrans = OCI_DB_SDF_TRANS,
767 ShutdownTransLocal = OCI_DB_SDF_TRANS_LOCAL,
770 ShutdownImmediate = OCI_DB_SDF_IMMEDIATE,
776 ShutdownAbort = OCI_DB_SDF_ABORT
796 OracleClientBytes = OCI_MEM_ORACLE,
798 OcilibBytes = OCI_MEM_OCILIB,
800 AllBytes = OCI_MEM_ALL
856 static void Cleanup();
891 static unsigned int GetCharMaxSize();
907 static bool Initialized();
926 static unsigned int GetCompileMajorVersion();
933 static unsigned int GetCompileMinorVersion();
940 static unsigned int GetCompileRevisionVersion();
958 static unsigned int GetRuntimeMajorVersion();
965 static unsigned int GetRuntimeMinorVersion();
972 static unsigned int GetRuntimeRevisionVersion();
984 static void EnableWarnings(
bool value);
1061 const ostring& spfile = OTEXT(
""));
1121 static void SetHAHandler(HAHandlerProc handler);
1131 static unsigned int TAFHandler(
OCI_Connection* pConnection,
unsigned int type,
unsigned int event);
1132 static void NotifyHandler(
OCI_Event* pEvent);
1133 static void NotifyHandlerAQ(
OCI_Dequeue* pDequeue);
1139 static void SetUserCallback(
AnyPointer ptr, T callback);
1146 void SelfInitialize(EnvironmentFlags mode,
const ostring& libpath);
1151 EnvironmentHandle _handle;
1152 EnvironmentFlags _mode;
1153 unsigned int _charMaxSize;
1360 ConnectionPool = OCI_POOL_CONNECTION,
1362 SessionPool = OCI_POOL_SESSION
1399 unsigned int minSize,
unsigned int maxSize,
unsigned int increment = 1,
1421 unsigned int minSize,
unsigned int maxSize,
unsigned int increment = 1,
1472 unsigned int GetTimeout()
const;
1487 void SetTimeout(
unsigned int value);
1498 bool GetNoWait()
const;
1512 void SetNoWait(
bool value);
1519 unsigned int GetBusyConnectionsCount()
const;
1526 unsigned int GetOpenedConnectionsCount()
const;
1533 unsigned int GetMinSize()
const;
1540 unsigned int GetMaxSize()
const;
1547 unsigned int GetIncrement()
const;
1557 unsigned int GetStatementCacheSize()
const;
1566 void SetStatementCacheSize(
unsigned int value);
1596 template<
class,
int>
1613 TimeoutSend = OCI_NTO_SEND,
1618 TimeoutReceive = OCI_NTO_RECEIVE,
1623 TimeoutCall = OCI_NTO_CALL
1643 FailoverRequestSession = OCI_FOT_SESSION,
1645 FailoverRequestSelect = OCI_FOT_SELECT
1665 FailoverEventEnd = OCI_FOE_END,
1667 FailoverEventAbort = OCI_FOE_ABORT,
1669 FailoverEventReauthentificate = OCI_FOE_REAUTH,
1671 FailoverEventBegin = OCI_FOE_BEGIN,
1673 FailoverEventError = OCI_FOE_ERROR
1693 FailoverOk = OCI_FOC_OK,
1695 FailoverRetry = OCI_FOC_RETRY
1715 TraceIdentity = OCI_TRC_IDENTITY,
1717 TraceModule = OCI_TRC_MODULE,
1719 TraceAction = OCI_TRC_ACTION,
1721 TraceDetail = OCI_TRC_DETAIL
1846 void SetAutoCommit(
bool enabled);
1853 bool GetAutoCommit()
const;
1863 bool IsServerAlive()
const;
1873 bool PingServer()
const;
1883 ostring GetConnectionString()
const;
1913 ostring GetServerVersion()
const;
1930 unsigned int GetServerMajorVersion()
const;
1937 unsigned int GetServerMinorVersion()
const;
1944 unsigned int GetServerRevisionVersion()
const;
1953 void ChangePassword(
const ostring& newPwd);
1960 ostring GetSessionTag()
const;
1976 void SetSessionTag(
const ostring& tag);
1998 void SetTransaction(
const Transaction& transaction);
2064 void EnableServerOutput(
unsigned int bufsize,
unsigned int arrsize,
unsigned int lnsize);
2074 void DisableServerOutput();
2084 bool GetServerOutput(
ostring& line)
const;
2091 void GetServerOutput(std::vector<ostring>& lines)
const;
2206 unsigned int GetStatementCacheSize()
const;
2218 void SetStatementCacheSize(
unsigned int value);
2236 unsigned int GetDefaultLobPrefetchSize()
const;
2262 void SetDefaultLobPrefetchSize(
unsigned int value);
2278 unsigned int GetMaxCursors()
const;
2288 bool IsTAFCapable()
const;
2303 void SetTAFHandler(TAFHandlerProc handler);
2363 void SetTimeout(
TimeoutType timeout,
unsigned int value);
2390 Unknown = OCI_UNKNOWN,
2394 Tight = OCI_TRS_TIGHT,
2396 Loose = OCI_TRS_LOOSE,
2402 Serializable = OCI_TRS_SERIALIZABLE
2479 unsigned int GetTimeout()
const;
2514 Number(
bool create =
false);
2530 Number(
const otext* str,
const otext* format = OTEXT(
""));
2562 void FromString(
const ostring& str,
const ostring& format = OTEXT(
""))
const;
2584 ostring ToString()
const override;
2595 Number operator ++ (
int);
2596 Number operator -- (
int);
2598 bool operator == (
const Number& other)
const;
2599 bool operator != (
const Number& other)
const;
2600 bool operator > (
const Number& other)
const;
2601 bool operator < (
const Number& other)
const;
2602 bool operator >= (
const Number& other)
const;
2603 bool operator <= (
const Number& other)
const;
2605 template<class T, typename core::SupportedNumeric<T>::Type::type* =
nullptr>
2606 Number& operator = (
const T& lhs);
2608 template<class T, typename core::SupportedNumeric<T>::Type::type* =
nullptr>
2611 template<class T, typename core::SupportedNumeric<T>::Type::type* =
nullptr>
2612 Number operator - (
const T& value);
2614 template<class T, typename core::SupportedNumeric<T>::Type::type* =
nullptr>
2615 Number operator + (
const T& value);
2617 template<class T, typename core::SupportedNumeric<T>::Type::type* =
nullptr>
2618 Number operator * (
const T& value);
2620 template<class T, typename core::SupportedNumeric<T>::Type::type* =
nullptr>
2621 Number operator / (
const T& value);
2623 template<class T, typename core::SupportedNumeric<T>::Type::type* =
nullptr>
2624 Number& operator += (
const T& value);
2626 template<class T, typename core::SupportedNumeric<T>::Type::type* =
nullptr>
2627 Number& operator -= (
const T& value);
2629 template<class T, typename core::SupportedNumeric<T>::Type::type* =
nullptr>
2630 Number& operator *= (
const T& value);
2632 template<class T, typename core::SupportedNumeric<T>::Type::type* =
nullptr>
2633 Number& operator /= (
const T& value);
2638 static AnyPointer GetNativeValue(
const T& value);
2644 int Compare(
const Number& other)
const;
2647 inline T GetValue()
const;
2650 Number& SetValue(
const T& value);
2653 void Add(
const T& value);
2656 void Sub(
const T& value);
2659 void Multiply(
const T& value);
2662 void Divide(
const T& value);
2691 static Date SysDate();
2700 Date(
bool create =
false);
2716 Date(
const otext* str,
const otext* format = OTEXT(
""));
2740 bool IsValid()
const;
2747 int GetYear()
const;
2754 void SetYear(
int value);
2761 int GetMonth()
const;
2768 void SetMonth(
int value);
2782 void SetDay(
int value);
2789 int GetHours()
const;
2796 void SetHours(
int value);
2803 int GetMinutes()
const;
2810 void SetMinutes(
int value);
2817 int GetSeconds()
const;
2824 void SetSeconds(
int value);
2833 int DaysBetween(
const Date& other)
const;
2844 void SetDate(
int year,
int month,
int day);
2855 void SetTime(
int hour,
int min,
int sec);
2869 void SetDateTime(
int year,
int month,
int day,
int hour,
int min,
int sec);
2880 void GetDate(
int& year,
int& month,
int& day)
const;
2891 void GetTime(
int& hour,
int& min,
int& sec)
const;
2905 void GetDateTime(
int& year,
int& month,
int& day,
int& hour,
int& min,
int& sec)
const;
2914 void AddDays(
int days);
2923 void AddMonths(
int months);
2939 Date LastDay()
const;
2965 void FromString(
const ostring& str,
const ostring& format = OTEXT(
""));
2987 ostring ToString()
const override;
3001 Date& operator ++ ();
3008 Date operator ++ (
int);
3015 Date& operator -- ();
3022 Date operator -- (
int);
3029 Date operator + (
int value)
const;
3036 Date operator - (
int value)
const;
3043 Date& operator += (
int value);
3050 Date& operator -= (
int value);
3057 bool operator == (
const Date& other)
const;
3064 bool operator != (
const Date& other)
const;
3071 bool operator > (
const Date& other)
const;
3078 bool operator < (
const Date& other)
const;
3085 bool operator >= (
const Date& other)
const;
3092 bool operator <= (
const Date& other)
const;
3096 int Compare(
const Date& other)
const;
3130 YearMonth = OCI_INTERVAL_YM,
3132 DaySecond = OCI_INTERVAL_DS
3185 bool IsValid()
const;
3195 int GetYear()
const;
3205 void SetYear(
int value);
3215 int GetMonth()
const;
3225 void SetMonth(
int value);
3245 void SetDay(
int value);
3255 int GetHours()
const;
3265 void SetHours(
int value);
3275 int GetMinutes()
const;
3285 void SetMinutes(
int value);
3295 int GetSeconds()
const;
3305 void SetSeconds(
int value);
3312 int GetMilliSeconds()
const;
3319 void SetMilliSeconds(
int value);
3335 void GetDaySecond(
int& day,
int& hour,
int& min,
int& sec,
int& fsec)
const;
3351 void SetDaySecond(
int day,
int hour,
int min,
int sec,
int fsec);
3364 void GetYearMonth(
int& year,
int& month)
const;
3377 void SetYearMonth(
int year,
int month);
3386 void UpdateTimeZone(
const ostring& timeZone);
3398 void FromString(
const ostring& data);
3408 ostring ToString(
int leadingPrecision,
int fractionPrecision)
const;
3415 ostring ToString()
const override;
3457 bool operator == (
const Interval& other)
const;
3464 bool operator != (
const Interval& other)
const;
3471 bool operator > (
const Interval& other)
const;
3478 bool operator < (
const Interval& other)
const;
3485 bool operator >= (
const Interval& other)
const;
3492 bool operator <= (
const Interval& other)
const;
3496 int Compare(
const Interval& other)
const;
3530 NoTimeZone = OCI_TIMESTAMP,
3532 WithTimeZone = OCI_TIMESTAMP_TZ,
3534 WithLocalTimeZone = OCI_TIMESTAMP_LTZ
3606 bool IsValid()
const;
3613 int GetYear()
const;
3620 void SetYear(
int value);
3627 int GetMonth()
const;
3634 void SetMonth(
int value);
3648 void SetDay(
int value);
3655 int GetHours()
const;
3662 void SetHours(
int value);
3669 int GetMinutes()
const;
3676 void SetMinutes(
int value);
3683 int GetSeconds()
const;
3690 void SetSeconds(
int value);
3697 int GetMilliSeconds()
const;
3704 void SetMilliSeconds(
int value);
3715 void GetDate(
int& year,
int& month,
int& day)
const;
3727 void GetTime(
int& hour,
int& min,
int& sec,
int& fsec)
const;
3738 void SetDate(
int year,
int month,
int day);
3750 void SetTime(
int hour,
int min,
int sec,
int fsec);
3765 void GetDateTime(
int& year,
int& month,
int& day,
int& hour,
int& min,
int& sec,
int& fsec)
const;
3781 void SetDateTime(
int year,
int month,
int day,
int hour,
int min,
int sec,
int fsec,
const ostring& timeZone = OTEXT(
""));
3802 void SetTimeZone(
const ostring& timeZone);
3812 void GetTimeZoneOffset(
int& hour,
int& min)
const;
3839 void FromString(
const ostring& data,
const ostring& format = OCI_STRING_FORMAT_DATE);
3859 ostring ToString()
const override;
3964 bool operator == (
const Timestamp& other)
const;
3971 bool operator != (
const Timestamp& other)
const;
3978 bool operator > (
const Timestamp& other)
const;
3985 bool operator < (
const Timestamp& other)
const;
3992 bool operator >= (
const Timestamp& other)
const;
3999 bool operator <= (
const Timestamp& other)
const;
4003 int Compare(
const Timestamp& other)
const;
4015 template<
class T,
int U>
4068 unsigned int Write(
const T& content);
4080 unsigned int Append(
const T& content);
4089 void Append(
const Lob& other);
4105 bool Seek(
SeekMode seekMode, big_uint offset);
4119 big_uint GetOffset()
const;
4126 big_uint GetLength()
const;
4133 big_uint GetMaxSize()
const;
4146 big_uint GetChunkSize()
const;
4162 void Truncate(big_uint length);
4179 big_uint Erase(big_uint offset, big_uint length);
4194 void Copy(
Lob& dest, big_uint offset, big_uint offsetDest, big_uint length)
const;
4201 bool IsTemporary()
const;
4208 bool IsRemote()
const;
4259 void EnableBuffering(
bool value);
4273 Lob& operator += (
const Lob& other);
4280 bool operator == (
const Lob& other)
const;
4287 bool operator != (
const Lob& other)
const;
4291 bool Equals(
const Lob& other)
const;
4394 Raw Read(
unsigned int size);
4410 bool Seek(
SeekMode seekMode, big_uint offset);
4420 bool Exists()
const;
4427 big_uint GetOffset()
const;
4434 big_uint GetLength()
const;
4490 bool IsOpened()
const;
4504 bool operator == (
const File& other)
const;
4511 bool operator != (
const File& other)
const;
4515 bool Equals(
const File& other)
const;
4544 Table = OCI_TIF_TABLE,
4546 View = OCI_TIF_VIEW,
4604 unsigned int GetColumnCount()
const;
4620 Column GetColumn(
unsigned int index)
const;
4634 boolean IsFinalType()
const;
4684 Persistent = OCI_OBJ_PERSISTENT,
4686 Transient = OCI_OBJ_TRANSIENT,
4688 Value = OCI_OBJ_VALUE
4723 bool IsAttributeNull(
const ostring& name)
const;
4732 void SetAttributeNull(
const ostring& name);
4768 T Get(
const ostring& name)
const;
4816 void Set(
const ostring& name,
const T& value);
4830 ostring ToString()
const override;
4886 Object GetObject()
const;
4893 bool IsReferenceNull()
const;
4903 void SetReferenceNull();
4917 ostring ToString()
const override;
4940 typedef T ValueType;
4948 bool IsNull()
const;
4972 typedef typename T::ValueType value_type;
4975 typedef std::random_access_iterator_tag iterator_category;
4976 typedef ptrdiff_t difference_type;
4977 typedef ptrdiff_t distance_type;
4978 typedef value_type* pointer;
4979 typedef value_type& reference;
5046 Varray = OCI_COLL_VARRAY,
5048 NestedTable = OCI_COLL_NESTED_TABLE,
5050 IndexedTable = OCI_COLL_INDEXED_TABLE
5090 unsigned int GetMax()
const;
5097 unsigned int GetSize()
const;
5109 unsigned int GetCount()
const;
5118 void Truncate(
unsigned int size);
5138 bool IsElementNull(
unsigned int index)
const;
5150 void SetElementNull(
unsigned int index);
5169 bool Delete(
unsigned int index)
const;
5178 T Get(
unsigned int index)
const;
5188 void Set(
unsigned int index,
const T& value);
5198 void Append(
const T& value);
5219 ostring ToString()
const override;
5281 static void SetElem(
OCI_Elem* elem,
const T& value);
5293 template<
class T,
int U>
5328 unsigned int Write(
const T& content);
5335 unsigned int GetLength()
const;
5396 InOut = OCI_BDM_IN_OUT
5463 unsigned int GetSubType()
const;
5474 unsigned int GetDataCount()
const;
5503 void SetDataNull(
bool value,
unsigned int index = 1);
5519 bool IsDataNull(
unsigned int index = 1)
const;
5559 template<
class,
int>
5562 friend class BindObject;
5574 TypeSelect = OCI_CST_SELECT,
5576 TypeUpdate = OCI_CST_UPDATE,
5578 TypeDelete = OCI_CST_DELETE,
5580 TypeInsert = OCI_CST_INSERT,
5582 TypeCreate = OCI_CST_CREATE,
5584 TypeDrop = OCI_CST_DROP,
5586 TypeAlter = OCI_CST_ALTER,
5588 TypeBegin = OCI_CST_BEGIN,
5590 TypeDeclare = OCI_CST_DECLARE,
5592 TypeCall = OCI_CST_CALL,
5594 TypeMerge = OCI_CST_MERGE
5614 FetchForward = OCI_SFM_DEFAULT,
5616 FetchScrollable = OCI_SFM_SCROLLABLE
5636 BindByPosition = OCI_BIND_BY_POS,
5638 BindByName = OCI_BIND_BY_NAME
5658 LongExplicit = OCI_LONG_EXPLICIT,
5660 LongImplicit = OCI_LONG_IMPLICIT
5724 void Describe(
const ostring& sql);
5749 void Parse(
const ostring& sql);
5761 void Prepare(
const ostring& sql);
5768 void ExecutePrepared();
5777 void Execute(
const ostring& sql);
5797 unsigned int ExecutePrepared(T callback);
5819 template<
class T,
class U>
5820 unsigned int ExecutePrepared(T callback, U adapter);
5841 unsigned int Execute(
const ostring& sql, T callback);
5864 template<
class T,
class U>
5865 unsigned int Execute(
const ostring& sql, T callback, U adapter);
5881 unsigned int GetAffectedRows()
const;
5895 ostring GetSqlIdentifier()
const;
5957 void SetBindArraySize(
unsigned int size);
5964 unsigned int GetBindArraySize()
const;
5981 void AllowRebinding(
bool value);
5991 bool IsRebindingAllowed()
const;
6009 unsigned int GetBindIndex(
const ostring& name)
const;
6016 unsigned int GetBindCount()
const;
6032 BindInfo GetBind(
unsigned int index)
const;
6089 template<
class T,
class U>
6191 template<
class T,
class U>
6234 template<
class T,
class U>
6255 template<
class T,
class U>
6274 unsigned int GetSqlErrorPos()
const;
6324 void SetFetchSize(
unsigned int value);
6334 unsigned int GetFetchSize()
const;
6346 void SetPrefetchSize(
unsigned int value);
6356 unsigned int GetPrefetchSize()
const;
6376 void SetPrefetchMemory(
unsigned int value);
6386 unsigned int GetPrefetchMemory()
const;
6395 void SetLongMaxSize(
unsigned int value);
6405 unsigned int GetLongMaxSize()
const;
6438 unsigned int GetSQLCommand()
const;
6459 void GetBatchErrors(std::vector<Exception>& exceptions);
6464 static void OnFreeSmartHandle(SmartHandle* smartHandle);
6470 void ReleaseResultsets()
const;
6474 void SetInData()
const;
6475 void SetOutData()
const;
6476 void ClearBinds()
const;
6478 template<
typename M,
class T>
6481 template<
typename M,
class T>
6484 template<
typename M,
class T>
6487 template<
typename M,
class T,
class U>
6490 template<
typename T>
6491 unsigned int Fetch(T callback);
6493 template<
typename T,
typename U>
6494 unsigned int Fetch(T callback, U adapter);
6517 SeekAbsolute = OCI_SFD_ABSOLUTE,
6519 SeekRelative = OCI_SFD_RELATIVE
6544 T Get(
unsigned int index)
const;
6560 void Get(
unsigned int index, T& value)
const;
6575 T Get(
const ostring& name)
const;
6588 void Get(
const ostring& name, T& value)
const;
6604 template<
class T,
class U>
6605 bool Get(T& value, U adapter)
const;
6622 template<
typename T>
6647 template<
typename T,
typename U>
6648 unsigned int ForEach(T callback, U adapter);
6726 bool Seek(
SeekMode mode,
int offset);
6733 unsigned int GetCount()
const;
6745 unsigned int GetCurrentRow()
const;
6760 unsigned int GetColumnIndex(
const ostring& name)
const;
6767 unsigned int GetColumnCount()
const;
6779 Column GetColumn(
unsigned int index)
const;
6803 bool IsColumnNull(
unsigned int index)
const;
6812 bool IsColumnNull(
const ostring& name)
const;
6826 bool operator ++ (
int);
6833 bool operator -- (
int);
6841 bool operator += (
int offset);
6849 bool operator -= (
int offset);
6878 NoFlags = OCI_CPF_NONE,
6881 IsIdentity = OCI_CPF_IS_IDENTITY,
6885 IsGeneratedAlways = OCI_CPF_IS_GEN_ALWAYS,
6888 IsGeneratedByDefaultOnNull = OCI_CPF_IS_GEN_BY_DEFAULT_ON_NULL,
6890 IsLogicalPartitioning = OCI_CPF_IS_LPART,
6892 IsGeneratedByContainers = OCI_CPF_IS_CONID
6930 ostring GetFullSQLType()
const;
6956 unsigned int GetSubType()
const;
6981 unsigned int GetSize()
const;
6988 int GetScale()
const;
6995 int GetPrecision()
const;
7002 int GetFractionalPrecision()
const;
7009 int GetLeadingPrecision()
const;
7028 bool IsNullable()
const;
7039 bool IsCharSemanticUsed()
const;
7080 typedef void (*NotifyHandlerProc) (
Event& evt);
7090 ObjectChanges = OCI_CNT_OBJECTS,
7092 RowChanges = OCI_CNT_ROWS,
7094 DatabaseChanges = OCI_CNT_DATABASES,
7096 AllChanges = OCI_CNT_ALL
7130 void Register(
const Connection& connection,
const ostring& name,
ChangeTypes changeTypes, NotifyHandlerProc handler,
unsigned int port = 0,
unsigned int timeout = 0);
7153 void Watch(
const ostring& sql);
7167 unsigned int GetTimeout()
const;
7174 unsigned int GetPort()
const;
7216 DatabaseStart = OCI_ENT_STARTUP,
7218 DatabaseShutdown = OCI_ENT_SHUTDOWN,
7220 DatabaseShutdownAny = OCI_ENT_SHUTDOWN_ANY,
7222 DatabaseDrop = OCI_ENT_DROP_DATABASE,
7224 Unregister = OCI_ENT_DEREGISTER,
7226 ObjectChanged = OCI_ENT_OBJECT_CHANGED
7246 ObjectInserted = OCI_ONT_INSERT,
7248 ObjectUpdated = OCI_ONT_UPDATE,
7250 ObjectDeleted = OCI_ONT_DELETE,
7252 ObjectAltered = OCI_ONT_ALTER,
7254 ObjectDropped = OCI_ONT_DROP,
7256 ObjectGeneric = OCI_ONT_GENERIC
7290 ostring GetDatabaseName()
const;
7300 ostring GetObjectName()
const;
7379 void SetName(
const ostring& value);
7404 void SetAddress(
const ostring& value);
7432 Ready = OCI_AMS_READY,
7434 Waiting = OCI_AMS_WAITING,
7436 Processed = OCI_AMS_PROCESSED,
7438 Expired = OCI_AMS_EXPIRED
7517 Date GetEnqueueTime()
const;
7524 int GetAttemptCount()
const;
7553 int GetExpiration()
const;
7574 void SetExpiration(
int value);
7584 int GetEnqueueDelay()
const;
7608 void SetEnqueueDelay(
int value);
7618 int GetPriority()
const;
7632 void SetPriority(
int value);
7643 Raw GetOriginalID()
const;
7656 void SetOriginalID(
const Raw& value);
7666 ostring GetCorrelation()
const;
7678 void SetCorrelation(
const ostring& value);
7693 ostring GetExceptionQueue()
const;
7721 void SetExceptionQueue(
const ostring& value);
7731 Agent GetSender()
const;
7740 void SetSender(
const Agent& agent);
7753 void SetConsumers(std::vector<Agent>& agents);
7779 Before = OCI_ASD_BEFORE,
7801 Immediate = OCI_AMV_IMMEDIATE,
7803 OnCommit = OCI_AMV_ON_COMMIT
7845 void Put(
const Message& message);
7909 Raw GetRelativeMsgID()
const;
7924 void SetRelativeMsgID(
const Raw& value);
7947 typedef void (*NotifyAQHandlerProc) (
Dequeue& dequeue);
7957 Browse = OCI_ADM_BROWSE,
7959 Locked = OCI_ADM_LOCKED,
7961 Remove = OCI_ADM_REMOVE,
7963 Confirm = OCI_ADM_REMOVE_NODATA
7983 Immediate = OCI_AMV_IMMEDIATE,
7985 OnCommit = OCI_AMV_ON_COMMIT
8005 FirstMessage = OCI_ADN_FIRST_MSG,
8007 NextMessage = OCI_ADN_NEXT_MSG,
8010 NextTransaction = OCI_ADN_NEXT_TRANSACTION
8062 Agent Listen(
int timeout);
8085 void SetConsumer(
const ostring& value);
8095 ostring GetCorrelation()
const;
8108 void SetCorrelation(
const ostring& value);
8118 Raw GetRelativeMsgID()
const;
8127 void SetRelativeMsgID(
const Raw& value);
8216 int GetWaitTime()
const;
8235 void SetWaitTime(
int value);
8244 void SetAgents(std::vector<Agent>& agents);
8262 void Subscribe(
unsigned int port,
unsigned int timeout, NotifyAQHandlerProc handler);
8296 NormalQueue = OCI_AQT_NORMAL,
8298 ExceptionQueue = OCI_AQT_EXCEPTION,
8300 NonPersistentQueue = OCI_AQT_NON_PERSISTENT
8337 unsigned int maxRetries = 0,
unsigned int retryDelay = 0,
unsigned int retentionTime = 0,
8338 bool dependencyTracking =
false,
const ostring& comment = OTEXT(
""));
8361 unsigned int maxRetries = 0,
unsigned int retryDelay = 0,
8362 unsigned int retentionTime = 0,
const ostring& comment = OTEXT(
""));
8398 static void Start(
const Connection& connection,
const ostring& queue,
bool enableEnqueue =
true,
bool enableDequeue =
true);
8418 static void Stop(
const Connection& connection,
const ostring& queue,
bool stopEnqueue =
true,
bool stopDequeue =
true,
bool wait =
true);
8439 None = OCI_AGM_NONE,
8442 Transactionnal = OCI_AGM_TRANSACTIONNAL
8463 Buffered = OCI_APM_BUFFERED,
8465 Persistent = OCI_APM_PERSISTENT,
8513 static void Create(
const Connection& connection,
const ostring& table,
const ostring& payloadType,
bool multipleConsumers,
8514 const ostring& storageClause = OTEXT(
""),
const ostring& sortList = OTEXT(
""),
8516 unsigned int primaryInstance = 0,
unsigned int secondaryInstance = 0,
8517 const ostring& compatible = OTEXT(
""));
8537 static void Alter(
const Connection& connection,
const ostring& table,
const ostring& comment,
unsigned int primaryInstance = 0,
unsigned int secondaryInstance = 0);
8559 static void Drop(
const Connection& connection,
const ostring& table,
bool force =
true);
8625 Default = OCI_DCM_DEFAULT,
8627 Force = OCI_DCM_FORCE
8647 ResultComplete = OCI_DPR_COMPLETE,
8649 ResultError = OCI_DPR_ERROR,
8651 ResultFull = OCI_DPR_FULL,
8653 ResultPartial = OCI_DPR_PARTIAL,
8655 ResultEmpty = OCI_DPR_EMPTY
8706 void SetColumn(
unsigned int colIndex,
const ostring& name,
unsigned int maxSize,
const ostring& format = OTEXT(
""));
8739 void SetEntry(
unsigned int rowIndex,
unsigned int colIndex,
const T& value,
bool complete =
true);
8845 void SetCurrentRows(
unsigned int value);
8855 unsigned int GetCurrentRows()
const;
8865 unsigned int GetMaxRows()
const;
8875 unsigned int GetRowCount()
const;
8889 unsigned int GetAffectedRows()
const;
8904 void SetDateFormat(
const ostring& format);
8932 void SetParallel(
bool value);
8948 void SetNoLog(
bool value);
8963 void SetCacheSize(
unsigned int value);
8975 void SetBufferSize(
unsigned int value);
9020 unsigned int GetErrorColumn();
9055 unsigned int GetErrorRow();
9059#define OCILIB_DEFINE_FLAG_OPERATORS(T) \
9060 inline core::Flags<T> operator | (T a, T b) { return core::Flags<T>(a) | core::Flags<T>(b); } \
AQ identified agent for messages delivery.
Provides SQL bind information.
VectorTypeValues
Vector type values.
BindDirectionValues
Bind direction enumerated values.
core::Enum< VectorTypeValues > VectorType
Vector type.
core::Enum< BindDirectionValues > BindDirection
Bind direction.
Class used for handling transient collection value. it is used internally by the Collection<T> class:
Object identifying the SQL data types VARRAY and NESTED TABLE.
CollectionIterator< const CollectionElement< T > > const_iterator
Common const iterator declaration.
core::Enum< CollectionTypeValues > CollectionType
Collection type.
CollectionTypeValues
Collection type enumerated values.
CollectionIterator< CollectionElement< T > > iterator
Common iterator declaration.
STL compliant Collection Random iterator class.
Encapsulate a Resultset column or object member properties.
PropertyFlagsValues
Column properties flags values.
core::Flags< PropertyFlagsValues > PropertyFlags
Column properties flags.
A connection or session with a specific database.
FailoverEventValues
Failover events enumerated values.
core::Enum< SessionTraceValues > SessionTrace
Session traces.
core::Enum< FailoverResultValues > FailoverResult
Failover callback results.
core::Enum< TimeoutTypeValues > TimeoutType
Timeout Types.
FailoverRequestValues
Failover request enumerated values.
core::Enum< FailoverRequestValues > FailoverRequest
Failover requests.
SessionTraceValues
Session trace enumerated values.
core::Enum< FailoverEventValues > FailoverEvent
Failover events.
FailoverResultValues
Failover callback results enumerated values.
TimeoutTypeValues
Timeout enumerated values.
Object identifying the SQL data type DATE.
Dequeue object for dequeuing messages into an Oracle Queue.
DequeueVisibilityValues
Message visibility enumerated values.
core::Enum< DequeueVisibilityValues > DequeueVisibility
Message visibility after begin dequeued.
NavigationModeValues
Navigation Mode enumerated values.
DequeueModeValues
Dequeue mode enumerated values.
core::Enum< DequeueModeValues > DequeueMode
Dequeue mode.
core::Enum< NavigationModeValues > NavigationMode
Navigation Mode.
Oracle Direct path loading encapsulation.
ResultValues
Direct Operation Result enumerated values.
core::Enum< ConversionModeValues > ConversionMode
Conversion Mode.
core::Enum< ResultValues > Result
Direct Operation Result.
ConversionModeValues
Conversion mode enumerated values.
Enqueue object for queuing messages into an Oracle Queue.
EnqueueModeValues
Message enqueuing mode enumerated values.
core::Enum< EnqueueModeValues > EnqueueMode
Message enqueuing mode.
EnqueueVisibilityValues
Message visibility enumerated values.
core::Enum< EnqueueVisibilityValues > EnqueueVisibility
Message visibility after begin queued.
Static class in charge of library initialization / cleanup.
core::Flags< ShutdownModeValues > ShutdownMode
Oracle instance shutdown modes.
CharsetModeValues
Charset mode enumerated values.
StartModeValues
Oracle instance start modes enumerated values.
ImportModeValues
OCI libraries import mode enumerated values.
HAEventTypeValues
HA Event types enumerated values.
StartFlagsValues
Oracle instance start flags enumerated values.
ShutdownFlagsValues
Oracle instance shutdown flags enumerated values.
core::Enum< CharsetModeValues > CharsetMode
Environment charset mode.
core::Enum< ImportModeValues > ImportMode
OCI libraries import mode.
core::Flags< ShutdownFlagsValues > ShutdownFlags
Oracle instance shutdown flags.
core::Flags< StartFlagsValues > StartFlags
Oracle instance start flags.
HAEventSourceValues
HA Event sources enumerated values.
EnvironmentFlagsValues
Environment Flags enumerated values.
core::Enum< HAEventTypeValues > HAEventType
Type of HA events.
AllocatedBytesValues
Allocated Bytes enumerated values.
core::Flags< AllocatedBytesValues > AllocatedBytesFlags
Allocated Bytes.
SessionFlagsValues
Session flags enumerated values.
core::Flags< StartModeValues > StartMode
Oracle instance start modes.
core::Enum< HAEventSourceValues > HAEventSource
Source of HA events.
core::Flags< SessionFlagsValues > SessionFlags
Sessions flags.
ShutdownModeValues
Oracle instance shutdown modes enumerated values.
core::Flags< EnvironmentFlagsValues > EnvironmentFlags
Environment Flags.
ObjectEventValues
Object events enumerated values.
core::Enum< ObjectEventValues > ObjectEvent
Object events.
core::Enum< EventTypeValues > EventType
Event type.
EventTypeValues
Event type enumerated values.
Exception class handling all OCILIB errors.
ExceptionTypeValues
Exception type enumerated values.
core::Enum< ExceptionTypeValues > ExceptionType
Type of Exception.
ostring GetMessage() const
Retrieve the error message.
const char * what() const noexcept override
Override the std::exception::what() method.
int GetOracleErrorCode() const
Return the Oracle error code.
unsigned int GetRow() const
Return the row index which caused an error during statement execution.
ExceptionType GetType() const
Return the Exception type.
Connection GetConnection() const
Return the connection within the error occurred.
int GetInternalErrorCode() const
Return the OCILIB error code.
Statement GetStatement() const
Return the statement within the error occurred.
Object identifying the SQL data type BFILE.
Object identifying the SQL data type INTERVAL.
IntervalTypeValues
Interval types enumerated values.
core::Enum< IntervalTypeValues > IntervalType
Interval types.
Object identifying the SQL data type LOB (CLOB, NCLOB and BLOB)
T Read(unsigned int length)
Read a portion of a lob.
Object identifying the SQL data type LONG.
T GetContent() const
Return the string read from a fetch sequence.
MessageStateValues
Message state enumerated values.
void SetPayload(const T &value)
Set the object payload of the message.
core::Enum< MessageStateValues > MessageState
Message state.
T GetPayload()
Get the object payload of the message.
Static class allowing managing mutexes.
Object identifying the SQL data type NUMBER.
Object identifying the SQL data type OBJECT.
core::Enum< ObjectTypeValues > ObjectType
Object Type.
void Get(const ostring &name, Collection< T > &value) const
Assign the given collection with the given object attribute value of type collection.
ObjectTypeValues
Object Type enumerated values.
void Get(const ostring &name, T &value) const
Assign the given value with the given object attribute value.
A connection or session Pool.
PoolTypeValues
Pool type enumerated values.
core::Enum< PoolTypeValues > PoolType
Type of Pool.
Class allowing the administration of Oracle Queues.
QueueTypeValues
Queue Type enumerated values.
core::Enum< QueueTypeValues > QueueType
Queue Type.
Class allowing the administration of Oracle Queue tables.
GroupingModeValues
Grouping mode enumerated values.
PurgeModeValues
Purge mode enumerated values.
core::Enum< GroupingModeValues > GroupingMode
Grouping Mode.
core::Enum< PurgeModeValues > PurgeMode
Purge mode.
Object identifying the SQL data type REF.
unsigned int ForEach(T callback)
Fetch all rows in the resultset and call the given callback for row.
SeekModeValues
Seek Modes enumerated values.
bool Get(T &value, U adapter) const
Return a given user type from the current fetched row. It allow translating row column values returne...
core::Enum< SeekModeValues > SeekMode
Seek Modes.
Object used for executing SQL or PL/SQL statement and returning the produced results.
LongModeValues
LONG data type mapping modes enumerated values.
StatementTypeValues
Statement Type enumerated values.
core::Enum< BindModeValues > BindMode
Bind Modes.
void Register(const ostring &name, U extraInfo)
Register a host variable with more information as an output for a column present in a SQL RETURNING I...
void Bind(const ostring &name, T &value, BindInfo::BindDirection mode)
Bind an host variable.
void Bind(const ostring &name, std::vector< T > &values, U extraInfo, BindInfo::BindDirection mode, BindInfo::VectorType type=BindInfo::AsArray)
Bind a vector of host variables with more information.
BindModeValues
Bind Modes enumerated values.
void Bind(const ostring &name, std::vector< T > &values, BindInfo::BindDirection mode, BindInfo::VectorType type=BindInfo::AsArray)
Bind a vector of host variables.
FetchModeValues
Fetch Modes enumerated values.
core::Enum< FetchModeValues > FetchMode
Fetch Modes.
void Register(const ostring &name)
Register a host variable as an output for a column present in a SQL RETURNING INTO clause.
core::Enum< LongModeValues > LongMode
LONG data type mapping modes.
core::Enum< StatementTypeValues > StatementType
Statement Type.
void Bind(const ostring &name, T &value, U extraInfo, BindInfo::BindDirection mode)
Bind an host variable with more information.
void Register(const ostring &name, U &extraInfo)
Register a host variable with Oracle type information as an output for a column present in a SQL RETU...
Subscription to database or objects changes.
core::Flags< ChangeTypesValues > ChangeTypes
Subscription changes flags.
ChangeTypesValues
Subscription changes flags values.
static class allowing to manipulate threads
POCI_THREAD ThreadProc
Thread callback.
Static class allowing to set/get thread local storage (TLS) values for a given unique key.
POCI_THREADKEYDEST ThreadKeyFreeProc
Thread Key callback for freeing resources.
Object identifying the SQL data type TIMESTAMP.
core::Enum< TimestampTypeValues > TimestampType
Type of timestamp.
TimestampTypeValues
Interval types enumerated values.
Oracle Transaction object.
core::Flags< TransactionFlagsValues > TransactionFlags
Transaction flags.
TransactionFlagsValues
Transaction flags enumerated values.
Provides type information on Oracle Database objects.
TypeInfoTypeValues
Type of object information enumerated values.
core::Enum< TypeInfoTypeValues > TypeInfoType
Type of object information.
Internal usage. Map supporting concurrent access from multiple threads.
Template Enumeration template class providing some type safety to some extends for manipulating enume...
Template Flags template class providing some type safety to some extends for manipulating flags set v...
Internal usage. Smart pointer class with reference counting for managing OCILIB object handles.
Internal usage. Interface for handling ownership and relationship of a C API handle.
Abstract class allowing derived classes to be compatible with any type supporting the operator << oci...
Internal usage. SynchronizationGuard object.
Internal usage. Class implementing bind translations between C++ vectors and C API arrays.
Internal usage. Class owning bind objects allowing to set/get C data prior/after a statement executio...
struct OCI_Ref OCI_Ref
Oracle REF type representation.
struct OCI_Elem OCI_Elem
Oracle Collection item representation.
struct OCI_Dequeue OCI_Dequeue
OCILIB encapsulation of A/Q dequeuing operations.
struct OCI_Connection OCI_Connection
Oracle physical connection.
struct OCI_Object OCI_Object
Oracle Named types representation.
void(* POCI_THREAD)(OCI_Thread *thread, void *arg)
Thread procedure prototype.
struct OCI_Statement OCI_Statement
Oracle SQL or PL/SQL statement.
struct OCI_Timestamp OCI_Timestamp
Oracle internal timestamp representation.
struct OCI_Date OCI_Date
Oracle internal date representation.
struct OCI_Coll OCI_Coll
Oracle Collections (VARRAYs and Nested Tables) representation.
struct OCI_Bind OCI_Bind
Internal bind representation.
struct OCI_Error OCI_Error
Encapsulates an Oracle or OCILIB exception.
struct OCI_Lob OCI_Lob
Oracle Internal Large objects:
struct OCI_Long OCI_Long
Oracle Long data type.
struct OCI_Column OCI_Column
Oracle SQL Column and Type member representation.
struct OCI_Interval OCI_Interval
Oracle internal interval representation.
struct OCI_Transaction OCI_Transaction
Oracle Transaction.
struct OCI_Msg OCI_Msg
OCILIB encapsulation of A/Q message.
struct OCI_Number OCI_Number
Oracle NUMBER representation.
struct OCI_TypeInfo OCI_TypeInfo
Type info metadata handle.
struct OCI_File OCI_File
Oracle External Large objects:
void(* POCI_THREADKEYDEST)(void *data)
Thread key destructor prototype.
struct OCI_Event OCI_Event
OCILIB encapsulation of Oracle DCN event.
struct OCI_Resultset OCI_Resultset
Collection of output columns from a select statement.
struct OCI_Subscription OCI_Subscription
OCILIB encapsulation of Oracle DCN notification.
struct OCI_Agent OCI_Agent
OCILIB encapsulation of A/Q Agent.
static T Check(T result)
Internal usage. Checks if the last OCILIB function call has raised an error. If so,...
OracleVersionValues
Oracle Version enumerated values.
std::basic_string< otext, std::char_traits< otext >, std::allocator< otext > > ostring
string class wrapping the OCILIB otext * type and OTEXT() macros ( see Character sets )
NumericTypeValues
Numeric type enumerated values.
core::Enum< OpenModeValues > OpenMode
Open Modes.
Long< Raw, LongBinary > Blong
Class handling LONG RAW oracle type.
core::Enum< NumericTypeValues > NumericType
Numeric data type.
Lob< ostring, LobNationalCharacter > NClob
Class handling NCLOB oracle type.
LongTypeValues
Long types enumerated values.
const void * ThreadId
Thread Unique ID.
CharsetFormValues
Charset form enumerated values.
OpenModeValues
Open Modes enumerated values.
CollationIDValues
Collation ID enumerated values.
@ CollationIDNlsSortVar1CI
@ CollationIDNlsSortVar1AI
@ CollationIDNlsSortVar1CS
SeekModeValues
Seek Modes enumerated values.
core::Enum< CollationIDValues > CollationID
Type of Collation ID.
Lob< ostring, LobCharacter > Clob
Class handling CLOB oracle type.
core::Enum< LobTypeValues > LobType
Type of Lob.
core::Enum< SeekModeValues > SeekMode
Seek Modes.
std::vector< unsigned char > Raw
C++ counterpart of SQL RAW data type.
core::Enum< LongTypeValues > LongType
Type of Long.
OCI_Mutex * MutexHandle
Alias for an OCI_Mutex pointer.
FormatTypeValues
Format type enumerated values.
void * AnyPointer
Alias for the generic void pointer.
DataTypeValues
Data type enumerated values.
LobTypeValues
Lob types enumerated values.
core::Enum< FormatTypeValues > FormatType
Format type.
Long< ostring, LongCharacter > Clong
Class handling LONG oracle type.
Lob< Raw, LobBinary > Blob
Class handling BLOB oracle type.
OCI_Thread * ThreadHandle
Alias for an OCI_Thread pointer.
core::Enum< CharsetFormValues > CharsetForm
Type of charsetForm.
core::Enum< DataTypeValues > DataType
Column data type.
core::Enum< OracleVersionValues > OracleVersion
Oracle Version.