⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ocidef.h

📁 ORACLE访问接口
💻 H
📖 第 1 页 / 共 3 页
字号:
/*
 * $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 + -