📄 oro.h
字号:
/* Copyright (c) Oracle Corporation 1994, 1995, 1996, 1997, 1998, 1999. All Rights Reserved. */
/*
NAME
OCI - Oracle Object Interface for External/Internal/Kernel Clients
DESCRIPTION
This header file contains Oracle object interface definitions which
can be included by external user applications, tools, as well as
the kernel. It defines types and constants that are common to all
object interface which is being defined in several other header files
(e.g., ori.h, ort.h, and orl.h).
RELATED DOCUMENTS
TBD
INSPECTION STATUS [[ deletable if no inspection ]]
Inspection date: [[ date of the last logging meeting ]]
Inspection status: [[ exited, not exited, or N/A if exit is not a goal ]]
Estimated increasing cost defects per page:
Rule sets: [[ rule sets inspected against or planned to be
inspected against ]]
ACCEPTANCE REVIEW STATUS [[ deletable if no approval review ]]
Review date: [[ date of the meeting where issues were logged and the
approval status was decided ]]
Review status: [[ current status: accepted, conditionally accepted,
major revision required, rejected ]]
Reviewers: [[ names of the members on the review team ]]
PUBLIC FUNCTIONS
EXAMPLES
Examples are given in the description of each function or macro where
relevant.
MODIFIED
tnbui 07/28/99 - Remove OCI_TYPECODE_TIMESTAMP_ITZ
tnbui 07/21/99 - TS LOCAL TZ
thoang 06/21/99 - Add OCI_TYPECODE_TIMESTAMP_ITZ
thoang 03/04/99 - Add datetime datatypes
rkasamse 10/20/98 - add OCI_ATTR_CACHE_ARRAYFLUSH
rkasamse 10/29/98 - add OCI_DURATION_CALLOUT
rkasamse 04/28/98 - OCI_OBJECT_DETECTCHANGE -> OCI_ATTR_OBJECT_DETECTCHAN
rkasamse 04/28/98 - OCI_OBJECT_NEWNOTNULL -> OCI_ATTR_OBJECT_NEWNOTNULL
rkasamse 04/23/98 - add OCI_OBJECT_DETECTCHANGE
rkasamse 04/03/98 - add OCI_OBJECT_NEWNOTNULL
pmitra 04/01/98 - OCI_LOCK_X_NOWAIT added
rxgovind 02/18/98 - add OCI_TYPECODE_OPAQUE
rkasamse 02/13/98 - Add OCI_DURATION_PROCESS
rkasamse 12/02/97 -
cxcheng 07/28/97 - fix compile with SLSHORTNAME
skrishna 07/14/97 - add OCIObjectGetProperty
cxcheng 04/30/97 - make OCITypeParamMode values consistent with PL/SQL
skrishna 04/28/97 - undocument OCIObjectProperty & OCIObjectEvent
cxcheng 03/29/97 - remove all remaining short names
sthakur 03/20/97 - add casts to constants
cxcheng 02/21/97 - temporarily put SLSHORTNAME for PL/SQL
cxcheng 02/06/97 - take out short name support except with SLSHORTNAME
lchidamb 01/20/97 - update OCIRef comments
sgollapu 11/19/96 - Add OCI type codes for BOOL,REC,and TAB
cxcheng 11/19/96 - more typecode changes
cxcheng 11/13/96 - add #include for ocidfn.h
cxcheng 11/13/96 - add OCI_TYPECODE_ADT for compatibility
cxcheng 11/12/96 - add SQLT_NCO for named collection
cxcheng 11/11/96 - more changes to typecodes
cxcheng 11/07/96 - #define OCI_TYPECODE_MLSLABEL to SQLT_LAB
cxcheng 11/06/96 - fix #define omission for OROTCNAT
cxcheng 10/30/96 - move OCI_TYPECODE_* to ocidfn.h as SQLT_*
cxcheng 10/28/96 - more beautification changes
jboonleu 10/29/96 - add flags for freeing object
dchatter 10/26/96 - delete redef of OCISvcCtx, OCIError, OCIEnv
cxcheng 10/15/96 - more changes
cxcheng 10/14/96 - more final fixes to constants
mluong 10/11/96 -
mluong 10/11/96 - KOCON and KONSP are in lowercase
mluong 10/11/96 - add some define per Calvin
cxcheng 10/09/96 - add #define for OROOCOSFN to OCI_COPY_NOREF
jboonleu 10/08/96 - change OROOCOSFN to OCICopyFlag
jboonleu 10/07/96 - use new OCI names for cache options
cxcheng 10/07/96 - add OROTCS02 for KOTTCBRI and OROTCS03 as spare
cxcheng 10/07/96 - more lint fixes
cxcheng 10/02/96 - move oronsp to ko.h as konsp
cxcheng 10/01/96 - add long names for readability
cxcheng 10/01/96 - remove orotty and orotal
rjenkins 09/28/96 - 2k char 4k varchar2
jboonleu 09/27/96 - add macro used only in beta2
cxcheng 09/27/96 - move oroenv to oroenv.h
cxcheng 09/24/96 - remove unnecessary orotyp
cxcheng 09/25/96 - add typecode OROTCS01 as placeholder for lob pointer
cxcheng 09/20/96 - add TDO load option orotgo
jboonleu 09/18/96 - add OROOPOREC
jboonleu 09/10/96 - add OROOPODFL
jweisz 08/27/96 - add SQL internal typecode OROTCS00
cxcheng 08/02/96 - add PLSQL internal typecodes OROTCP..
cxcheng 08/01/96 - add OROTCFAR to fill up space left by OROTCCAR
jboonleu 07/16/96 - new pin option
cxcheng 06/18/96 - add casts to OROTNOPRE and OROTNOSCL
cxcheng 05/29/96 - change OROTCNPT back to OROTCDOM
vkrishna 05/27/96 - add OROTCCAR
cxcheng 05/17/96 - replace OROTCFAR with OROTCCAR
cxcheng 05/08/96 - change orotmf from ub1 to ub2
cxcheng 05/07/96 - fix public defines for method types
cxcheng 04/30/96 - change OROTCDOM to OROTCNPT
cxcheng 04/15/96 - remove obsolete OROTTYICT
jboonleu 04/12/96 - add new pin option
sthakur 04/12/96 - add indicator type and indicator status
cxcheng 04/10/96 - add function parameter codes for ORT/KOT
cxcheng 04/03/96 - replace OROTCFAR as OROTCCAR
jwijaya 03/29/96 - add OROTTCCAR
jwijaya 03/27/96 - better comments for orotc
cxcheng 02/23/96 - add typecodes for SMALLINT and VARCHAR2
skrishna 02/22/96 - add oroind - null indicator type
cxcheng 02/21/96 - change lob character codes to OROTCCLB, OROTCBLB...
jboonleu 02/06/96 - new value for predefined duration
cxcheng 01/12/96 - add OROTCCLO, OROTCBLO, OROTCFIL to orotc
cxcheng 12/05/95 - add OROTCDOM and OROTCAAT to orotc
skotsovo 10/30/95 - reserve space for internal 'oid' type
jwijaya 10/20/95 - support variable-length ref
cxcheng 10/03/95 - add OROTMFOR for ordering function to orotmf
cxcheng 10/03/95 - Adding the ordering function type to orotmf
jboonleu 09/28/95 - set OROODTPRE
jboonleu 09/25/95 - add oroodt
skotsovo 03/10/95 - update to only include release 1
jboonleu 02/15/95 - add OROOPOREC, remove orocro, oroolo
skotsovo 01/30/95 - add default max lengths for varrays and vstrings
skotsovo 01/24/95 - categorize sint32, double, and real as number types
(with precision and scale) instead of scalar types.
skotsovo 12/20/94 - add release 1 types
skotsovo 12/12/94 - update according to new ots doc
skotsovo 12/01/94 - add default precision and scale
jwijaya 11/15/94 - rename ORONSPTAB to ORONSPEXT
jwijaya 10/25/94 - tint
jwijaya 10/06/94 - add namespace
jwijaya 10/02/94 - connection handle -> connection number
skotsovo 09/12/94 - keep 0 as uninitialized value for ORT consts
skotsovo 08/24/94 - fix orotec
skotsovo 08/17/94 - modify type code names
skotsovo 08/12/94 - fix 141 lint errors
skotsovo 07/25/94 - modify categorization of complex types (orotc)
skotsovo 07/07/94 - change typecode enum values & add decimal type
skotsovo 07/01/94 - change order of typecodes
jwijaya 06/15/94 - review
jboonleu 06/13/94 - add comments for the object cache options
jwijaya 06/13/94 - adhere to the header file template
skotsovo 06/09/94 - make ots scalar type names consistent with the ots
document
jwijaya 06/07/94 - include oratypes.h instead of s.h
skotsovo 05/24/94 - change typecodes
jwijaya 05/23/94 - fix comments of ororef
skotsovo 05/19/94 - remove type composition
skotsovo 05/09/94 - modified orotc according to new OTS document
jwijaya 05/03/94 - oroid and ororef
jwijaya 01/26/94 - Creation
*/
#ifndef ORATYPES
#include "oratypes.h"
#endif
#ifndef OCIDFN_ORACLE
#include "ocidfn.h"
#endif
#ifndef ORO_ORACLE
#define ORO_ORACLE
/*---------------------------------------------------------------------------*/
/* SHORT NAMES SUPPORT SECTION */
/*---------------------------------------------------------------------------*/
#ifdef SLSHORTNAME
/* the following are short names that are only supported on IBM mainframes
with the SLSHORTNAME defined.
With this all subsequent long names will actually be substituted with
the short names here */
#define OCIDuration oroodt
#define OCIInd oroind
#define OCILockOpt oroolm
#define OCIMarkOpt oroomo
#define OCIObjectEvent orocev
#define OCIObjectProperty oroopr
#define OCIPinOpt oroopo
#define OCIRef ororef
#define OCIRefreshOpt orooro
#define OCITypeCode orotc
#define OCITypeEncap orotec
#define OCITypeGetOpt orotgo
#define OCITypeMethodFlag orotmf
#define OCITypeParamMode orotpm
#define OCIObjectPropId oroopi
#define OCIObjectLifetime oroolft
#define OCIObjectMarkstatus oroomst
#define OCI_LOCK_NONE OROOLMNUL
#define OCI_LOCK_X OROOLMX
#define OCI_LOCK_X_NOWAIT OROOLMXNW
#define OCI_MARK_DEFAULT OROOMODFL
#define OCI_MARK_NONE OROOMONON
#define OCI_MARK_UPDATE OROOMOUPD
#define OCI_OBJECTEVENT_AFTER_FLUSH OROCEVAFL
#define OCI_OBJECTEVENT_AFTER_REFRESH OROCEVARF
#define OCI_OBJECTEVENT_BEFORE_FLUSH OROCEVBFL
#define OCI_OBJECTEVENT_BEFORE_REFRESH OROCEVBRF
#define OCI_OBJECTEVENT_WHEN_LOCK OROCEVWLK
#define OCI_OBJECTEVENT_WHEN_MARK_DELETED OROCEVWDL
#define OCI_OBJECTEVENT_WHEN_MARK_UPDATED OROCEVWUP
#define OCI_OBJECTEVENT_WHEN_UNMARK OROCEVWUM
#define OCI_OBJECTPROP_DIRTIED OROOPRDRT
#define OCI_OBJECTPROP_LOADED OROOPRLOD
#define OCI_OBJECTPROP_LOCKED OROOPRLCK
#define OCI_PIN_ANY OROOPOANY
#define OCI_PIN_DEFAULT OROOPODFL
#define OCI_PIN_LATEST OROOPOLST
#define OCI_PIN_RECENT OROOPOREC
#define OCI_REFRESH_LOADED OROOROLOD
#define OCI_TYPEENCAP_PRIVATE OROTECPVT
#define OCI_TYPEENCAP_PUBLIC OROTECPUB
#define OCI_TYPEGET_ALL OROTGOALL
#define OCI_TYPEGET_HEADER OROTGOHDR
#define OCI_TYPEMETHOD_CONSTANT OROTMFCON
#define OCI_TYPEMETHOD_CONSTRUCTOR OROTMFCSTR
#define OCI_TYPEMETHOD_DESTRUCTOR OROTMFDSTR
#define OCI_TYPEMETHOD_INLINE OROTMFINL
#define OCI_TYPEMETHOD_MAP OROTMFMAP
#define OCI_TYPEMETHOD_OPERATOR OROTMFOP
#define OCI_TYPEMETHOD_ORDER OROTMFOR
#define OCI_TYPEMETHOD_RNDS OROTMFRDS
#define OCI_TYPEMETHOD_RNPS OROTMFRPS
#define OCI_TYPEMETHOD_SELFISH OROTMFSLF
#define OCI_TYPEMETHOD_VIRTUAL OROTMFVRT
#define OCI_TYPEMETHOD_WNDS OROTMFWDS
#define OCI_TYPEMETHOD_WNPS OROTMFWPS
#define OCI_TYPEPARAM_BYREF OROTPMREF
#define OCI_TYPEPARAM_IN OROTPMIN
#define OCI_TYPEPARAM_INOUT OROTPMIO
#define OCI_TYPEPARAM_OUT OROTPMOUT
#endif /* SLSHORTNAME */
/*---------------------------------------------------------------------------*/
/* PUBLIC TYPES, CONSTANTS AND MACROS */
/*---------------------------------------------------------------------------*/
/*---------------------------------------------------------------------------*/
/* GENERAL OBJECT TYPES, CONSTANTS, MACROS */
/*---------------------------------------------------------------------------*/
/*------------------------- OBJECT REFERENCE (REF) --------------------------*/
typedef struct OCIRef OCIRef;
/*
* OCIRef - OCI object REFerence
*
* In the Oracle object runtime environment, an object is identified by an
* object reference (ref) which contains the object identifier plus other
* runtime information. The contents of a ref is opaque to clients. Use
* OCIObjectNew() to construct a ref.
*/
/*--------------------------- 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 */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -