📄 oci_defs.h
字号:
#define OCI_NUMBER_SIGNED 2 /* Signed type -- sbX */
#define OCI_NUMBER_SIZE 22
struct OCINumber
{
ub1 OCINumberPart[OCI_NUMBER_SIZE];
};
/*-----------------------Objects Definitions---------------------------------*/
typedef struct OCIString OCIString;
typedef struct OCIRaw OCIRaw;
typedef struct OCIType OCIType;
typedef struct OCINumber OCINumber;
typedef struct OCIRef OCIRef;
/*--------------------------- OBJECT INDICATOR ------------------------------*/
typedef sb2 OCIInd;
/*
* OCIInd -- a variable of this type contains (null) indicator information
*/
#define OCI_IND_NOTNULL (OCIInd)0 /* not NULL */
#define OCI_IND_NULL (OCIInd)(-1) /* NULL */
#define OCI_IND_BADNULL (OCIInd)(-2) /* BAD NULL */
#define OCI_IND_NOTNULLABLE (OCIInd)(-3) /* not NULLable */
/*-------------------------Object Ptr Types----------------------------------*/
#define OCI_OTYPE_NAME 1 /* object name */
#define OCI_OTYPE_REF 2 /* REF to TDO */
#define OCI_OTYPE_PTR 3 /* PTR to TDO */
/*------------------------ Lob-specific Definitions -------------------------*/
typedef ub4 OCILobOffset;
typedef ub4 OCILobLength;
/*----------------------------Piece Definitions------------------------------*/
#define OCI_ONE_PIECE 0 /* one piece */
#define OCI_FIRST_PIECE 1 /* the first piece */
#define OCI_NEXT_PIECE 2 /* the next of many pieces */
#define OCI_LAST_PIECE 3 /* the last piece */
/*----------------------- GET OPTIONS FOR TDO ------------------------------*/
enum OCITypeGetOpt
{
OCI_TYPEGET_HEADER, /* load only the header portion of the TDO */
OCI_TYPEGET_ALL /* load all attribute and method descriptors as well */
};
typedef enum OCITypeGetOpt OCITypeGetOpt;
/*--------------------------- OBJECT PIN OPTION -----------------------------*/
enum OCIPinOpt
{
/* 0 = uninitialized */
OCI_PIN_DEFAULT = 1, /* default pin option */
OCI_PIN_ANY = 3, /* pin any copy of the object */
OCI_PIN_RECENT = 4, /* pin recent copy of the object */
OCI_PIN_LATEST = 5 /* pin latest copy of the object */
};
typedef enum OCIPinOpt OCIPinOpt;
/*--------------------------- OBJECT LOCK OPTION ----------------------------*/
enum OCILockOpt
{
/* 0 = uninitialized */
OCI_LOCK_NONE = 1, /* null (same as no lock) */
OCI_LOCK_X = 2, /* exclusive lock */
OCI_LOCK_X_NOWAIT = 3 /* exclusive lock, do not wait */
};
typedef enum OCILockOpt OCILockOpt;
/*------------------------- OBJECT MODIFYING OPTION -------------------------*/
enum OCIMarkOpt
{
/* 0 = uninitialized */
OCI_MARK_DEFAULT = 1, /* default (the same as OCI_MARK_NONE) */
OCI_MARK_NONE = OCI_MARK_DEFAULT, /* object has not been modified */
OCI_MARK_UPDATE /* object is to be updated */
};
typedef enum OCIMarkOpt OCIMarkOpt;
/*------------------------------ TYPE CODE ----------------------------------*/
/* The OCITypeCode type is interchangeable with the existing SQLT type
which is a ub2 */
typedef ub2 OCITypeCode;
/*--------------------------- ORACLE DATE TYPE ----------------------------*/
struct OCITime
{
ub1 OCITimeHH; /* hours; range is 0 <= hours <=23 */
ub1 OCITimeMI; /* minutes; range is 0 <= minutes <= 59 */
ub1 OCITimeSS; /* seconds; range is 0 <= seconds <= 59 */
};
typedef struct OCITime OCITime;
struct OCIDate
{
sb2 OCIDateYYYY; /* gregorian year; range is -4712 <= year <= 9999 */
ub1 OCIDateMM; /* month; range is 1 <= month < 12 */
ub1 OCIDateDD; /* day; range is 1 <= day <= 31 */
OCITime OCIDateTime; /* time */
};
typedef struct OCIDate OCIDate;
/*-------------------------- OBJECT Duration --------------------------------*/
typedef ub2 OCIDuration;
#define OCI_DURATION_BEGIN (OCIDuration)10
/* beginning sequence of duration */
#define OCI_DURATION_NULL (OCIDuration)(OCI_DURATION_BEGIN-1)
/* null duration */
#define OCI_DURATION_DEFAULT (OCIDuration)(OCI_DURATION_BEGIN-2) /* default */
#define OCI_DURATION_NEXT (OCIDuration)(OCI_DURATION_BEGIN-3)
/* next special duration */
#define OCI_DURATION_SESSION (OCIDuration)(OCI_DURATION_BEGIN)
/* the end of user session */
#define OCI_DURATION_TRANS (OCIDuration)(OCI_DURATION_BEGIN+1)
/* the end of user transaction */
/*-------------------------Object Ptr Types----------------------------------*/
#define OCI_OTYPE_NAME 1 /* object name */
/*--------------------------- OCI Parameter Types ---------------------------*/
#define OCI_PTYPE_UNK 0 /* unknown */
#define OCI_PTYPE_TABLE 1 /* table */
#define OCI_PTYPE_VIEW 2 /* view */
#define OCI_PTYPE_PROC 3 /* procedure */
#define OCI_PTYPE_FUNC 4 /* function */
#define OCI_PTYPE_PKG 5 /* package */
#define OCI_PTYPE_TYPE 6 /* user-defined type */
#define OCI_PTYPE_SYN 7 /* synonym */
#define OCI_PTYPE_SEQ 8 /* sequence */
#define OCI_PTYPE_COL 9 /* column */
#define OCI_PTYPE_ARG 10 /* argument */
#define OCI_PTYPE_LIST 11 /* list */
#define OCI_PTYPE_TYPE_ATTR 12 /* user-defined type's attribute */
#define OCI_PTYPE_TYPE_COLL 13 /* collection type's element */
#define OCI_PTYPE_TYPE_METHOD 14 /* user-defined type's method */
#define OCI_PTYPE_TYPE_ARG 15 /* user-defined type method's arg */
#define OCI_PTYPE_TYPE_RESULT 16/* user-defined type method's result */
#define OCI_PTYPE_SCHEMA 17 /* schema */
#define OCI_PTYPE_DATABASE 18 /* database */
#define OCI_PTYPE_RULE 19 /* rule */
#define OCI_PTYPE_RULE_SET 20 /* rule set */
#define OCI_PTYPE_EVALUATION_CONTEXT 21 /* evaluation context */
#define OCI_PTYPE_TABLE_ALIAS 22 /* table alias */
#define OCI_PTYPE_VARIABLE_TYPE 23 /* variable type */
#define OCI_PTYPE_NAME_VALUE 24 /* name value pair */
/*------------------------------ TYPE CODE ----------------------------------*/
#define OCI_TYPECODE_VARRAY 247 /* SQL VARRAY OTS PAGED VARRAY */
#define OCI_TYPECODE_TABLE 248 /* SQL TABLE OTS MULTISET */
/*------------------------Piece Information----------------------------------*/
#define OCI_PARAM_IN 0x01 /* in parameter */
#define OCI_PARAM_OUT 0x02 /* out parameter */
/*----------------------- OBJECT PROPERTY ID -------------------------------*/
typedef ub1 OCIObjectPropId;
#define OCI_OBJECTPROP_LIFETIME 1 /* persistent or transient or value */
#define OCI_OBJECTPROP_SCHEMA 2 /* schema name of table containing object */
#define OCI_OBJECTPROP_TABLE 3 /* table name of table containing object */
#define OCI_OBJECTPROP_PIN_DURATION 4 /* pin duartion of object */
#define OCI_OBJECTPROP_ALLOC_DURATION 5 /* alloc duartion of object */
#define OCI_OBJECTPROP_LOCK 6 /* lock status of object */
#define OCI_OBJECTPROP_MARKSTATUS 7 /* mark status of object */
#define OCI_OBJECTPROP_VIEW 8 /* is object a view object or not? */
/*----------------------- OBJECT LIFETIME ----------------------------------*/
enum OCIObjectLifetime
{
/* 0 = uninitialized */
OCI_OBJECT_PERSISTENT = 1, /* persistent object */
OCI_OBJECT_TRANSIENT, /* transient object */
OCI_OBJECT_VALUE /* value object */
};
typedef enum OCIObjectLifetime OCIObjectLifetime;
/*----------------------- OBJECT MARK STATUS -------------------------------*/
typedef uword OCIObjectMarkStatus;
#define OCI_OBJECT_NEW 0x0001 /* new object */
#define OCI_OBJECT_DELETED 0x0002 /* object marked deleted */
#define OCI_OBJECT_UPDATED 0x0004 /* object marked updated */
/* macros to test the object mark status */
#define OCI_OBJECT_IS_UPDATED(flag) bit((flag), OCI_OBJECT_UPDATED)
#define OCI_OBJECT_IS_DELETED(flag) bit((flag), OCI_OBJECT_DELETED)
#define OCI_OBJECT_IS_NEW(flag) bit((flag), OCI_OBJECT_NEW)
#define OCI_OBJECT_IS_DIRTY(flag) \
bit((flag), OCI_OBJECT_UPDATED|OCI_OBJECT_NEW|OCI_OBJECT_DELETED)
/*----- values for cflg argument to OCIDirpathColArrayEntrySet --------------*/
#define OCI_DIRPATH_COL_COMPLETE 0 /* column data is complete */
#define OCI_DIRPATH_COL_NULL 1 /* column is null */
#define OCI_DIRPATH_COL_PARTIAL 2 /* column data is partial */
#define OCI_DIRPATH_COL_ERROR 3 /* column error, ignore row */
/*----- values for action parameter to OCIDirPathDataSave -------------------*/
#define OCI_DIRPATH_DATASAVE_SAVEONLY 0 /* data save point only */
/*------------- Supported Values for Direct Path Date cache -----------------*/
#define OCI_ATTR_DIRPATH_DCACHE_NUM 303 /* date cache entries */
#define OCI_ATTR_DIRPATH_DCACHE_SIZE 304 /* date cache limit */
#define OCI_ATTR_DIRPATH_DCACHE_MISSES 305 /* date cache misses */
#define OCI_ATTR_DIRPATH_DCACHE_HITS 306 /* date cache hits */
#define OCI_ATTR_DIRPATH_DCACHE_DISABLE 307 /* on set: disable datecache */
/*------------- Supported Values for Direct Path Stream Version -------------*/
#define OCI_ATTR_DIRPATH_NOLOG 79 /* nologging option */
#define OCI_ATTR_DIRPATH_PARALLEL 80 /* parallel (temp seg) option */
#endif /* OCILIB_OCI_DEFS_H_INCLUDED */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -