📄 ocidef.h
字号:
/*
* $Header: ocidef.h 13-jul-2000.06:05:16 bpalaval Exp $ ocidef.h
*/
/* copyright (c) 1981 by Relational Software Incorporated */
/* copyright (c) 1984 by the Oracle Corporation */
/*
NAME
ocidef
CONTENTS
Oracle Call Interface cursor area and LDA definitions
NOTES
none
OWNER
Oates
DATE
09/07/82
MODIFIED
bpalaval 07/13/00 - Bug 1244685.
whe 09/01/99 - 976457:check __cplusplus for C++ code
skmishra 04/23/97 - Provide C++ compatibility
lchidamb 06/26/96 - put upidef.h, riddef.h within #ifndef
slari 06/12/96 - add ocigft_getFcnType
dchatter 11/10/95 - ocignfd - oci get native file descriptor
slari 05/11/95 - change OCIEVDEF and OCIEVTSF to UPIEVDEF and UPIEVTSF
dchatter 04/06/95 - add ifdef flags around OCI_flags
lchidamb 04/06/95 - drop maxdsz from ocibndps/ocidfnps
slari 04/07/95 - rename opinit to ocipin
slari 03/13/95 - thread safety changes
dchatter 03/08/95 - piece definitions OCI_*_PIECE
lchidamb 12/06/94 - add support for binding/defining with skips
dchatter 03/06/95 - merge changes from branch 1.12.720.1
dchatter 02/06/95 - add defines for login mode parameters
dchatter 07/06/94 - Deleting CRSCHK, with refcursor, no way to set this
dchatter 06/13/94 - add a new LDA flag LDANBL
rkooi 11/18/92 - update ocidpr interface
mmoore 10/31/92 - add ocidpr
gpongrac 11/17/92 - fix oexfet prototype
sjain 01/03/92 - Add ocibra
rjenkins 11/04/91 - adding prototypes for oparse and oexfet
sjain 04/15/91 - Change ocistf proto
sjain 04/01/91 - Rearrange oty codes. Add new ones
Jain 12/03/90 - Add #define for new describe call
Jain 11/29/90 - Add new function code for the new oci calls
Mendels 01/20/89 - fix 19170: make ocitbl CONST_DATA
Kabcene 01/27/88 - change interfaces to match V5
Navab 12/09/87 - add a parameter to ocierr call
Navab 11/30/87 - add ocierr, rename ocioer
Navab 10/08/87 - add prototypes for procedure declarations
Howard 09/07/87 - endif blah
Howard 05/11/87 - Add OTY types
Howard 04/27/87 - move ocldef defines here
Oates 10/15/85 - Add OCANCEL
Oates 09/30/85 - Implement ORA*Net
Oates 06/27/85 - Make datatype compatible with upidef.h
Andy 05/07/85 - delete CSRFBPIC
*/
#ifndef UPIDEF
#include <upidef.h>
#endif
#ifndef RIDDEF
#include <riddef.h>
#endif
#ifndef OCIDEF
#define OCIDEF
#define CSRCHECK 172 /* csrdef is a cursor */
#define LDACHECK 202 /* csrdef is a login data area */
struct csrdef
{
b2 csrrc; /* return code: v2 codes, v4 codes negative */
ub2 csrft; /* function type */
ub4 csrrpc; /* rows processed count */
ub2 csrpeo; /* parse error offset */
ub1 csrfc; /* function code */
ub1 csrlfl; /* lda flag to indicate type of login */
ub2 csrarc; /* actual untranslated return code */
ub1 csrwrn; /* warning flags */
ub1 csrflg; /* error action */
word csrcn; /* cursor number */
riddef csrrid; /* rowid structure */
word csrose; /* os dependent error code */
ub1 csrchk; /* check byte = CSRCHECK - in cursor */
/* check byte = LDACHECK - in LDA */
struct hstdef *csrhst; /* pointer to the hst */
};
typedef struct csrdef csrdef;
typedef struct csrdef ldadef; /* lda is the same as a csr */
/* values for csrlfl */
#define LDAFLG 1 /* ...via ologon */
#define LDAFLO 2 /* ...via olon or orlon */
#define LDANBL 3 /* ...nb logon in progress */
/* valuses for crsfc */
#define csrfpa 2 /* ...OSQL */
#define csrfex 4 /* ...OEXEC */
#define csrfbi 6 /* ...OBIND */
#define csrfdb 8 /* ...ODFINN */
#define csrfdi 10 /* ...ODSRBN */
#define csrffe 12 /* ...OFETCH */
#define csrfop 14 /* ...OOPEN */
#define csrfcl 16 /* ...OCLOSE */
#define csrfds 22 /* ...ODSC */
#define csrfnm 24 /* ...ONAME */
#define csrfp3 26 /* ...OSQL3 */
#define csrfbr 28 /* ...OBNDRV */
#define csrfbx 30 /* ...OBNDRN */
/*#defe csrfdf 32*/ /* ???? */
#define csrfso 34 /* ...OOPT */
#define csrfre 36 /* ...ORESUM */
#define csrfbn 50 /* ...OBINDN */
#define csrfca 52 /* ..OCANCEL */
#define csrfsd 54 /* ..OSQLD */
#define csrfef 56 /* ..OEXFEN */
#define csrfln 58 /* ..OFLNG */
#define csrfdp 60 /* ..ODSCSP */
#define csrfba 62 /* ..OBNDRA */
#define csrfbps 63 /*..OBINDPS */
#define csrfdps 64 /*..ODEFINPS */
#define csrfgpi 65 /* ...OGETPI */
#define csrfspi 66 /* ...OSETPI */
/* values for csrwrn */
#define CSRWANY 0x01 /* there is a warning flag set */
#define CSRWTRUN 0x02 /* a data item was truncated */
#define CSRWNVIC 0x04 /* NULL values were used in an aggregate function */
#define CSRWITCE 0x08 /* column count not equal to into list count */
#define CSRWUDNW 0x10 /* update or delete without where clause */
#define CSRWRSV0 0x20
#define CSRWROLL 0x40 /* rollback required */
#define CSRWRCHG 0x80 /* change after query start on select for update */
/* values fro csrflg */
#define CSRFSPND 0x01 /* current operation suspended */
#define CSRFATAL 0x02 /* fatal operation: transaction rolled back */
#define CSRFBROW 0x04 /* current row backed out */
#define CSRFREFC 0x08 /* ref cursor type CRSCHK disabled for this cursor */
#define CSRFNOAR 0x10 /* ref cursor type binds, so no array bind/execute */
/* define function codes; in order of octdef.h */
#define OTYCTB 1 /* CREATE TABLE */
#define OTYSER 2 /* set role */
#define OTYINS 3 /* INSERT */
#define OTYSEL 4 /* SELECT */
#define OTYUPD 5 /* UPDATE */
#define OTYDRO 6 /* drop role */
#define OTYDVW 7 /* DROP VIEW */
/* once was validate index */
/* once was create partition */
/* once was alter partition */
#define OTYDTB 8 /* DROP TABLE */
/* once was alter space */
/* once was drop space */
#define OTYDEL 9 /* DELETE */
#define OTYCVW 10 /* create view */
#define OTYDUS 11 /* drop user */
#define OTYCRO 12 /* create role */
#define OTYCSQ 13 /* create sequence */
#define OTYASQ 14 /* alter sequence */
#define OTYDSQ 16 /* drop sequence */
#define OTYCSC 17 /* create schema */
#define OTYCCL 18 /* CREATE CLUSTER */
/* once was alter cluster */
#define OTYCUS 19 /* create user */
#define OTYCIX 20 /* CREATE INDEX */
#define OTYDIX 21 /* DROP INDEX */
#define OTYDCL 22 /* DROP CLUSTER */
#define OTYVIX 23 /* validate index */
#define OTYCPR 24 /* create procedure */
#define OTYAPR 25 /* alter procedure */
#define OTYATB 26 /* alter table */
/* once was evaluate */
#define OTYXPL 27 /* explain */
#define OTYGRA 28 /* grant */
#define OTYREV 29 /* revoke */
#define OTYCSY 30 /* create synonym */
#define OTYDSY 31 /* drop synonym */
#define OTYASY 32 /* alter system switch log */
#define OTYSET 33 /* set transaction */
#define OTYPLS 34 /* pl/sql execute */
#define OTYLTB 35 /* lock */
#define OTYNOP 36 /* noop */
#define OTYRNM 37 /* rename */
#define OTYCMT 38 /* comment */
#define OTYAUD 39 /* audit */
#define OTYNOA 40 /* no audit */
#define OTYAIX 41 /* ALTER INDEX */
#define OTYCED 42 /* create external database */
#define OTYDED 43 /* drop external database */
#define OTYCDB 44 /* create database */
#define OTYADB 45 /* alter database */
#define OTYCRS 46 /* create rollback segment */
#define OTYARS 47 /* alter rollback segment */
#define OTYDRS 48 /* drop rollback segment */
#define OTYCTS 49 /* create tablespace */
#define OTYATS 50 /* alter tablespace */
#define OTYDTS 51 /* drop tablespace */
#define OTYASE 52 /* alter session */
#define OTYAUR 53 /* alter user */
#define OTYCWK 54 /* commit (work) */
#define OTYROL 55 /* rollback */
#define OTYSPT 56 /* savepoint */
/* Bug 1244685 : Reintrouducing some retired OTY codes
since sqlplus uses V8 oci fn codes */
# define OTYACL 57
/* For number greater than 56 the the type is the same as defined in
** octdef.h for that number. So for completion look at octdef.h
*/
#define OTYDEV OTYCVW /* old DEFINE VIEW = create view */
/* Retired OTY types; try to reserve their values for a while */
#ifdef NEVER /* unused */
# define OTYCLN 2 /* CREATE LINK */
# define OTYDLN 6 /* DROP LINK */
# define OTYEXP 11 /* EXPAND */
/* 12 through 17 are also unused */
# define OTYACL 19 /* ALTER CLUSTER */
# define OTYCSP 23 /* CREATE SPACE */
# define OTYASP 24 /* alter space */
# define OTYDSP 25 /* drop space */
# define OTYEVA 27 /* evaluate */
# define OTYVIN 32 /* validate index */
# define OTYCPA 33 /* create partition */
# define OTYAPA 34 /* alter partition */
#endif /*NEVER *//* end of unused */
/* FUNCTION CODES */
#define OCLFPA 2 /* parse - OSQL */
#define OCLFEX 4 /* execute - OEXEC */
#define OCLFBI 6 /* BIND by name - OBIND */
#define OCLFDB 8 /* define buffer - ODEFIN */
#define OCLFDI 10 /* describe item - ODSC */
#define OCLFFE 12 /* fetch - OFETCH */
#define OCLFOC 14 /* open cursor - OOPEN */
# define OCLFLI OCLFOC /* old name for open cursor - OOPEN */
#define OCLFCC 16 /* close cursor - OCLOSE */
# define OCLFLO OCLFCC /* old name for close cursor - OCLOSE */
#define OCLFDS 22 /* describe - ODSC */
#define OCLFON 24 /* get table and column names - ONAME */
#define OCLFP3 26 /* parse - OSQL3 */
#define OCLFBR 28 /* bind reference by name - OBNDRV */
#define OCLFBX 30 /* bind referecne numeric - OBNDRN */
#define OCLFSO 34 /* special function - OOPT */
#define OCLFRE 36 /* resume - ORESUM */
#define OCLFBN 50 /* bindn */
#define OCLFMX 52 /* maximum function number */
#ifdef NEVER /* unused codes */
# define OCLFLK 18 /* open for kernel operations */
# define OCLFEK 20 /* execute kernel operations */
# define OCLFOK 22 /* kernel close */
# define OCLFIN 28 /* logon to oracle */
# define OCLFOF 30 /* logoff from oracle */
# define OCLFAX 32 /* allocate a context area */
# define OCLFPI 34 /* page in context area */
# define OCLFIS 36 /* special system logon */
# define OCLFCO 38 /* cancel the current operation */
# define OCLFGI 40 /* get database id */
# define OCLFJN 42 /* journal operation */
# define OCLFCL 44 /* cleanup prior execute operation */
# define OCLFMC 46 /* map a cursor area */
# define OCLFUC 48 /* unmap cursor and restore user maping */
#endif /*NEVER *//* obsolete codes */
/* values for ocimode in ocipin call */
#define OCIEVDEF UPIEVDEF /* default : non-thread safe enivronment */
#define OCIEVTSF UPIEVTSF /* thread-safe environment */
/* OCIL* flags used to determine the mode of login, using ocilog().
** Currently defined only for non-blocking and thread-safe logins.
*/
#define OCILMDEF UPILMDEF /* default, regular login */
#define OCILMNBL UPILMNBL /* non-blocking logon */
#define OCILMESY UPILMESY /* thread safe but external sync */
#define OCILMISY UPILMISY /* internal sync, we do it */
#define OCILMTRY UPILMTRY /* try to, but do not block on mutex */
/*
* since sqllib uses both ocidef and ocidfn the following defines
* need to be guarded
*/
#ifndef OCI_FLAGS
#define OCI_FLAGS
/* OCI_*_PIECE defines the piece types that are returned or set
*/
#define OCI_ONE_PIECE UPI_ONE_PIECE /* there or this is the only piece */
#define OCI_FIRST_PIECE UPI_FIRST_PIECE /* the first of many pieces */
#define OCI_NEXT_PIECE UPI_NEXT_PIECE /* the next of many pieces */
#define OCI_LAST_PIECE UPI_LAST_PIECE /* the last piece of this column */
#endif
/*
** OCITAB: define return code pairs for version 2 to 3 conversions
*/
struct ocitab
{
b2 ocitv3; /* Version 3/4 return code */
b2 ocitv2; /* Version 2 equivalent return code */
};
typedef struct ocitab ocitab;
externref CONST_DATA ocitab ocitbl[];
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -