📄 oro.h
字号:
* OCIObjectMarkStatus - OCI Object Mark Status * Status of the object - new or updated or deleted *//* 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)/*---------------------------------------------------------------------------*//* TYPE MANAGER *//*---------------------------------------------------------------------------*//*------------------------------ TYPE CODE ----------------------------------*//* * Type manager typecodes * * These are typecodes designed to be used with the type manager; * they also include longer, more readable versions of existing SQLT names. * Those types that are directly related to existing SQLT types are #define'd * to their SQLT equivalents. * * The type manager typecodes are designed to be useable for all OCI calls. * They are in the range from 192 to 320 for typecodes, so as not to conflict * with existing OCI SQLT typecodes (see ocidfn.h). */#define OCI_TYPECODE_REF SQLT_REF /* SQL/OTS OBJECT REFERENCE */#define OCI_TYPECODE_DATE SQLT_DAT /* SQL DATE OTS DATE */#define OCI_TYPECODE_SIGNED8 27 /* SQL SIGNED INTEGER(8) OTS SINT8 */#define OCI_TYPECODE_SIGNED16 28 /* SQL SIGNED INTEGER(16) OTS SINT16 */#define OCI_TYPECODE_SIGNED32 29 /* SQL SIGNED INTEGER(32) OTS SINT32 */#define OCI_TYPECODE_REAL 21 /* SQL REAL OTS SQL_REAL */#define OCI_TYPECODE_DOUBLE 22 /* SQL DOUBLE PRECISION OTS SQL_DOUBLE */#define OCI_TYPECODE_FLOAT SQLT_FLT /* SQL FLOAT(P) OTS FLOAT(P) */#define OCI_TYPECODE_NUMBER SQLT_NUM/* SQL NUMBER(P S) OTS NUMBER(P S) */#define OCI_TYPECODE_DECIMAL SQLT_PDN /* SQL DECIMAL(P S) OTS DECIMAL(P S) */#define OCI_TYPECODE_UNSIGNED8 SQLT_BIN /* SQL UNSIGNED INTEGER(8) OTS UINT8 */#define OCI_TYPECODE_UNSIGNED16 25 /* SQL UNSIGNED INTEGER(16) OTS UINT16 */#define OCI_TYPECODE_UNSIGNED32 26 /* SQL UNSIGNED INTEGER(32) OTS UINT32 */#define OCI_TYPECODE_OCTET 245 /* SQL ??? OTS OCTET */#define OCI_TYPECODE_SMALLINT 246 /* SQL SMALLINT OTS SMALLINT */#define OCI_TYPECODE_INTEGER SQLT_INT /* SQL INTEGER OTS INTEGER */#define OCI_TYPECODE_RAW SQLT_LVB /* SQL RAW(N) OTS RAW(N) */#define OCI_TYPECODE_PTR 32 /* SQL POINTER OTS POINTER */#define OCI_TYPECODE_VARCHAR2 SQLT_VCS /* SQL VARCHAR2(N) OTS SQL_VARCHAR2(N) */#define OCI_TYPECODE_CHAR SQLT_AFC /* SQL CHAR(N) OTS SQL_CHAR(N) */#define OCI_TYPECODE_VARCHAR SQLT_CHR /* SQL VARCHAR(N) OTS SQL_VARCHAR(N) */#define OCI_TYPECODE_MLSLABEL SQLT_LAB /* OTS MLSLABEL */#define OCI_TYPECODE_VARRAY 247 /* SQL VARRAY OTS PAGED VARRAY */#define OCI_TYPECODE_TABLE 248 /* SQL TABLE OTS MULTISET */#define OCI_TYPECODE_OBJECT SQLT_NTY /* SQL/OTS NAMED OBJECT TYPE */#define OCI_TYPECODE_OPAQUE 58 /* SQL/OTS Opaque Types */#define OCI_TYPECODE_NAMEDCOLLECTION SQLT_NCO /* SQL/OTS NAMED COLLECTION TYPE */#define OCI_TYPECODE_BLOB SQLT_BLOB /* SQL/OTS BINARY LARGE OBJECT */#define OCI_TYPECODE_BFILE SQLT_BFILE /* SQL/OTS BINARY FILE OBJECT */#define OCI_TYPECODE_CLOB SQLT_CLOB /* SQL/OTS CHARACTER LARGE OBJECT */#define OCI_TYPECODE_CFILE SQLT_CFILE /* SQL/OTS CHARACTER FILE OBJECT *//* the following are ANSI datetime datatypes added in 8.1 */#define OCI_TYPECODE_TIME SQLT_TIME /* SQL/OTS TIME */#define OCI_TYPECODE_TIME_TZ SQLT_TIME_TZ /* SQL/OTS TIME_TZ */#define OCI_TYPECODE_TIMESTAMP SQLT_TIMESTAMP /* SQL/OTS TIMESTAMP */#define OCI_TYPECODE_TIMESTAMP_TZ SQLT_TIMESTAMP_TZ /* SQL/OTS TIMESTAMP_TZ */#define OCI_TYPECODE_TIMESTAMP_LTZ SQLT_TIMESTAMP_LTZ /* TIMESTAMP_LTZ */#define OCI_TYPECODE_INTERVAL_YM SQLT_INTERVAL_YM /* SQL/OTS INTRVL YR-MON */#define OCI_TYPECODE_INTERVAL_DS SQLT_INTERVAL_DS /* SQL/OTS INTRVL DAY-SEC */#define OCI_TYPECODE_OTMFIRST 228 /* first Open Type Manager typecode */#define OCI_TYPECODE_OTMLAST 320 /* last OTM typecode */#define OCI_TYPECODE_SYSFIRST 228 /* first OTM system type (internal) */#define OCI_TYPECODE_SYSLAST 235 /* last OTM system type (internal) *//* the following are PL/SQL-only internal. They should not be used */#define OCI_TYPECODE_ITABLE SQLT_TAB /* PLSQL indexed table */#define OCI_TYPECODE_RECORD SQLT_REC /* PLSQL record */#define OCI_TYPECODE_BOOLEAN SQLT_BOL /* PLSQL boolean *//* To indicate absence of typecode being specified */#define OCI_TYPECODE_NONE 0/* The OCITypeCode type is interchangeable with the existing SQLT type which is a ub2 */typedef ub2 OCITypeCode;/*----------------------- GET OPTIONS FOR TDO ------------------------------*/enum OCITypeGetOpt{ OCI_TYPEGET_HEADER, /* load only the header portion of the TDO when getting type */ OCI_TYPEGET_ALL /* load all attribute and method descriptors as well */};typedef enum OCITypeGetOpt OCITypeGetOpt;/* * OCITypeGetOpt * * This is the flag passed to OCIGetTypeArray() to indicate how the TDO is * going to be loaded into the object cache. * OCI_TYPEGET_HEADER implies that only the header portion is to be loaded * initially, with the rest loaded in on a 'lazy' basis. Only the header is * needed for PL/SQL and OCI operations. OCI_TYPEGET_ALL implies that ALL * the attributes and methods belonging to a TDO will be loaded into the * object cache in one round trip. Hence it will take much longer to execute, * but will ensure that no more loading needs to be done when pinning ADOs * etc. This is only needed if your code needs to examine and manipulate * attribute and method information. * * The default is OCI_TYPEGET_HEADER. *//*------------------------ TYPE ENCAPSULTATION LEVEL ------------------------*/enum OCITypeEncap{ /* 0 = uninitialized */ OCI_TYPEENCAP_PRIVATE, /* private: only internally visible */ OCI_TYPEENCAP_PUBLIC /* public: visible to both internally and externally */};typedef enum OCITypeEncap OCITypeEncap;/* * OCITypeEncap - OCI Encapsulation Level *//*---------------------------- TYPE METHOD FLAGS ----------------------------*/enum OCITypeMethodFlag{ OCI_TYPEMETHOD_INLINE = 0x0001, /* inline */ OCI_TYPEMETHOD_CONSTANT = 0x0002, /* constant */ OCI_TYPEMETHOD_VIRTUAL = 0x0004, /* virtual */ OCI_TYPEMETHOD_CONSTRUCTOR = 0x0008, /* constructor */ OCI_TYPEMETHOD_DESTRUCTOR = 0x0010, /* destructor */ OCI_TYPEMETHOD_OPERATOR = 0x0020, /* operator */ OCI_TYPEMETHOD_SELFISH = 0x0040, /* selfish method (generic otherwise) */ OCI_TYPEMETHOD_MAP = 0x0080, /* map (relative ordering) */ OCI_TYPEMETHOD_ORDER = 0x0100, /* order (relative ordering) */ /* OCI_TYPEMETHOD_MAP and OCI_TYPEMETHOD_ORDER are mutually exclusive */ OCI_TYPEMETHOD_RNDS= 0x0200, /* Read no Data State (default) */ OCI_TYPEMETHOD_WNDS= 0x0400, /* Write no Data State */ OCI_TYPEMETHOD_RNPS= 0x0800, /* Read no Process State */ OCI_TYPEMETHOD_WNPS= 0x1000, /* Write no Process State */ OCI_TYPEMETHOD_ABSTRACT = 0x2000, /* abstract (not instantiable) method */ OCI_TYPEMETHOD_OVERRIDING = 0x4000, /* overriding method */ OCI_TYPEMETHOD_PIPELINED = 0x8000 /* method is pipelined */};typedef enum OCITypeMethodFlag OCITypeMethodFlag;/* macros to test the type method flags */#define OCI_METHOD_IS_INLINE(flag) bit((flag), OCI_TYPEMETHOD_INLINE)#define OCI_METHOD_IS_CONSTANT(flag) bit((flag), OCI_TYPEMETHOD_CONSTANT)#define OCI_METHOD_IS_VIRTUAL(flag) bit((flag), OCI_TYPEMETHOD_VIRTUAL)#define OCI_METHOD_IS_CONSTRUCTOR(flag) bit((flag), OCI_TYPEMETHOD_CONSTRUCTOR)#define OCI_METHOD_IS_DESTRUCTOR(flag) bit((flag), OCI_TYPEMETHOD_DESTRUCTOR)#define OCI_METHOD_IS_OPERATOR(flag) bit((flag), OCI_TYPEMETHOD_OPERATOR)#define OCI_METHOD_IS_SELFISH(flag) bit((flag), OCI_TYPEMETHOD_SELFISH)#define OCI_METHOD_IS_MAP(flag) bit((flag), OCI_TYPEMETHOD_MAP)#define OCI_METHOD_IS_ORDER(flag) bit((flag), OCI_TYPEMETHOD_ORDER)#define OCI_METHOD_IS_RNDS(flag) bit((flag), OCI_TYPEMETHOD_RNDS)#define OCI_METHOD_IS_WNDS(flag) bit((flag), OCI_TYPEMETHOD_WNDS)#define OCI_METHOD_IS_RNPS(flag) bit((flag), OCI_TYPEMETHOD_RNPS)#define OCI_METHOD_IS_WNPS(flag) bit((flag), OCI_TYPEMETHOD_WNPS)#define OCI_METHOD_IS_ABSTRACT(flag) bit((flag), OCI_TYPEMETHOD_ABSTRACT)#define OCI_METHOD_IS_OVERRIDING(flag) bit((flag), OCI_TYPEMETHOD_OVERRIDING)#define OCI_METHOD_IS_PIPELINED(flag) bit((flag), OCI_TYPEMETHOD_PIPELINED)#define OCI_TYPEMETHOD_IS_INLINE(flag) bit((flag), OCI_TYPEMETHOD_INLINE)#define OCI_TYPEMETHOD_IS_CONSTANT(flag) bit((flag), OCI_TYPEMETHOD_CONSTANT)#define OCI_TYPEMETHOD_IS_VIRTUAL(flag) bit((flag), OCI_TYPEMETHOD_VIRTUAL)#define OCI_TYPEMETHOD_IS_CONSTRUCTOR(flag) \ bit((flag), OCI_TYPEMETHOD_CONSTRUCTOR)#define OCI_TYPEMETHOD_IS_DESTRUCTOR(flag) \ bit((flag), OCI_TYPEMETHOD_DESTRUCTOR)#define OCI_TYPEMETHOD_IS_OPERATOR(flag) bit((flag), OCI_TYPEMETHOD_OPERATOR)#define OCI_TYPEMETHOD_IS_SELFISH(flag) bit((flag), OCI_TYPEMETHOD_SELFISH)#define OCI_TYPEMETHOD_IS_MAP(flag) bit((flag), OCI_TYPEMETHOD_MAP)#define OCI_TYPEMETHOD_IS_ORDER(flag) bit((flag), OCI_TYPEMETHOD_ORDER)#define OCI_TYPEMETHOD_IS_RNDS(flag) bit((flag), OCI_TYPEMETHOD_RNDS)#define OCI_TYPEMETHOD_IS_WNDS(flag) bit((flag), OCI_TYPEMETHOD_WNDS)#define OCI_TYPEMETHOD_IS_RNPS(flag) bit((flag), OCI_TYPEMETHOD_RNPS)#define OCI_TYPEMETHOD_IS_WNPS(flag) bit((flag), OCI_TYPEMETHOD_WNPS)#define OCI_TYPEMETHOD_IS_ABSTRACT(flag) bit((flag), OCI_TYPEMETHOD_ABSTRACT)#define OCI_TYPEMETHOD_IS_OVERRIDING(flag) bit((flag), OCI_TYPEMETHOD_OVERRIDING)#define OCI_TYPEMETHOD_IS_PIPELINED(flag) bit((flag), OCI_TYPEMETHOD_PIPELINED)/* macros to set the type method flags */#define OCI_TYPEMETHOD_SET_INLINE(flag) bis((flag), OCI_TYPEMETHOD_INLINE)#define OCI_TYPEMETHOD_SET_CONSTANT(flag) bis((flag), OCI_TYPEMETHOD_CONSTANT)#define OCI_TYPEMETHOD_SET_VIRTUAL(flag) bis((flag), OCI_TYPEMETHOD_VIRTUAL)#define OCI_TYPEMETHOD_SET_CONSTRUCTOR(flag) \ bis((flag), OCI_TYPEMETHOD_CONSTRUCTOR)#define OCI_TYPEMETHOD_SET_DESTRUCTOR(flag) \ bis((flag), OCI_TYPEMETHOD_DESTRUCTOR)#define OCI_TYPEMETHOD_SET_OPERATOR(flag) bis((flag), OCI_TYPEMETHOD_OPERATOR)#define OCI_TYPEMETHOD_SET_SELFISH(flag) bis((flag), OCI_TYPEMETHOD_SELFISH)#define OCI_TYPEMETHOD_SET_MAP(flag) bis((flag), OCI_TYPEMETHOD_MAP)#define OCI_TYPEMETHOD_SET_ORDER(flag) bis((flag), OCI_TYPEMETHOD_ORDER)#define OCI_TYPEMETHOD_SET_RNDS(flag) bis((flag), OCI_TYPEMETHOD_RNDS)#define OCI_TYPEMETHOD_SET_WNDS(flag) bis((flag), OCI_TYPEMETHOD_WNDS)#define OCI_TYPEMETHOD_SET_RNPS(flag) bis((flag), OCI_TYPEMETHOD_RNPS)#define OCI_TYPEMETHOD_SET_WNPS(flag) bis((flag), OCI_TYPEMETHOD_WNPS)/* macros to clear the type method flags */#define OCI_TYPEMETHOD_CLEAR_INLINE(flag) bic((flag), OCI_TYPEMETHOD_INLINE)#define OCI_TYPEMETHOD_CLEAR_CONSTANT(flag) \ bic((flag), OCI_TYPEMETHOD_CONSTANT)#define OCI_TYPEMETHOD_CLEAR_VIRTUAL(flag) bic((flag), OCI_TYPEMETHOD_VIRTUAL)#define OCI_TYPEMETHOD_CLEAR_CONSTRUCTOR(flag) \ bic((flag), OCI_TYPEMETHOD_CONSTRUCTOR)#define OCI_TYPEMETHOD_CLEAR_DESTRUCTOR(flag) \ bic((flag), OCI_TYPEMETHOD_DESTRUCTOR)#define OCI_TYPEMETHOD_CLEAR_OPERATOR(flag) \ bic((flag), OCI_TYPEMETHOD_OPERATOR)#define OCI_TYPEMETHOD_CLEAR_SELFISH(flag) bic((flag), OCI_TYPEMETHOD_SELFISH)#define OCI_TYPEMETHOD_CLEAR_MAP(flag) bic((flag), OCI_TYPEMETHOD_MAP)#define OCI_TYPEMETHOD_CLEAR_ORDER(flag) bic((flag), OCI_TYPEMETHOD_ORDER)#define OCI_TYPEMETHOD_CLEAR_RNDS(flag) bic((flag), OCI_TYPEMETHOD_RNDS)#define OCI_TYPEMETHOD_CLEAR_WNDS(flag) bic((flag), OCI_TYPEMETHOD_WNDS)#define OCI_TYPEMETHOD_CLEAR_RNPS(flag) bic((flag), OCI_TYPEMETHOD_RNPS)#define OCI_TYPEMETHOD_CLEAR_WNPS(flag) bic((flag), OCI_TYPEMETHOD_WNPS)/*--------------------------- TYPE PARAMETER MODE ---------------------------*/enum OCITypeParamMode{ /* PL/SQL starts this from 0 */ OCI_TYPEPARAM_IN = 0, /* in */ OCI_TYPEPARAM_OUT, /* out */ OCI_TYPEPARAM_INOUT, /* in-out */ OCI_TYPEPARAM_BYREF, /* call by reference (implicitly in-out) */ OCI_TYPEPARAM_OUTNCPY, /* OUT with NOCOPY modifier */ OCI_TYPEPARAM_INOUTNCPY /* IN OUT with NOCOPY modifier */};typedef enum OCITypeParamMode OCITypeParamMode;/*-------------------------------- DEFAULTS ---------------------------------*//* default binary and decimal precision and scale */#define OCI_NUMBER_DEFAULTPREC ((ub1)0) /* no precision specified */#define OCI_NUMBER_DEFAULTSCALE ((sb1)MAXSB1MINVAL) /* no binary/decimal scale specified *//* default maximum length for varrays and vstrings (used in sql.bsq) */#define OCI_VARRAY_MAXSIZE 4000 /* default maximum number of elements for a varray */#define OCI_STRING_MAXLEN 4000 /* default maximum length of a vstring *//*---------------------------------------------------------------------------*//* This set of macro is used only in beta2. They should be removed as soon as * PLSQL has made the changes of not using these macros. */ /* Special duration for allocating memory only. No instance can be allocated * given these durations. */#define OCICoherency OCIRefreshOpt#define OCI_COHERENCY_NONE (OCIRefreshOpt)2#define OCI_COHERENCY_NULL (OCIRefreshOpt)4#define OCI_COHERENCY_ALWAYS (OCIRefreshOpt)5#endif /* ORO_ORACLE */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -