mtollari 63d98e39cd Patch level : 12.0 no-patch
Files correlati     : 
Commento            : 
- Creazione nuova cartella per contenere tutte le librerie esterne
- Aggiunta nuova libreria sqlapi per interfacciare campo a vari DB

git-svn-id: svn://10.65.10.50/branches/R_10_00@24149 c028cbd2-c16b-5b4b-a496-9718f37d4682
2017-10-26 09:07:39 +00:00

283 lines
9.0 KiB
C

/*
*
*/
/* Copyright (c) 1996, 2005, Oracle. All rights reserved. */
/*
NAME
ociextp.h - Interface Definitions for PL/SQL External Procedures
DESCRIPTION
This header file contains C language callable interface from
PL/SQL External Procedures.
PUBLIC FUNCTION(S)
OCIExtProcAllocCallMemory - Allocate Call memory
OCIExtProcRaiseExcp - Raise Exception
OCIExtProcRaiseExcpWithMsg - Raise Exception with message
OCIExtProcGetEnv - Get OCI Environment
PRIVATE FUNCTION(S)
<list of static functions defined in .c file - with one-line descriptions>
EXAMPLES
NOTES
<other useful comments, qualifications, etc.>
MODIFIED (MM/DD/YY)
dmukhin 06/29/05 - ANSI prototypes; miscellaneous cleanup
srseshad 03/12/03 - convert oci public api to ansi
rdecker 01/10/02 - change 32k to MAX_OEN for error numbers
sagrawal 07/20/01 - Statement Handle to safe cal outs
abrumm 04/19/01 - move include of oci.h after defines/typedef
rdecker 02/22/01 - lint fix
bpalaval 02/08/01 - Change text to oratext.
sagrawal 06/16/00 - ref cursor in callouts
whe 09/01/99 - 976457:check __cplusplus for C++ code
asethi 04/15/99 - Created (by moving ociextp.h from /vobs/plsql/public)
rhari 03/25/97 - Use ifndef
rhari 12/18/96 - Include oratypes.h
rhari 12/11/96 - #416977, Flip values of return codes
rhari 12/02/96 - Define Return Code Macros
rhari 11/18/96 - Error number is int
rhari 10/30/96 - Fix OCIExtProcRaiseExcpWithMsg
rhari 10/30/96 - Get rid of warnings
rhari 10/04/96 - Fix OCIExtProcRaiseExcpWithMsg
rhari 09/23/96 - Creation
*/
#ifndef OCIEXTP_ORACLE
# define OCIEXTP_ORACLE
# ifndef ORATYPES
# include <oratypes.h>
# endif
/*---------------------------------------------------------------------------
PUBLIC TYPES AND CONSTANTS
---------------------------------------------------------------------------*/
/* ----------------------------- Return Codes ----------------------------- */
/* Success and Error return codes for certain external procedure interface
* functions. If a particular interface function returns OCIEXTPROC_SUCCESS
* or OCIEXTPROC_ERROR, then applications must use these macros to check
* for return values.
*
* OCIEXTPROC_SUCCESS -- External Procedure Success Return Code
* OCIEXTPROC_ERROR -- External Procedure Failure Return Code
*/
#define OCIEXTPROC_SUCCESS 0
#define OCIEXTPROC_ERROR 1
/* --------------------------- With-Context Type --------------------------- */
/*
* The C callable interface to PL/SQL External Procedures require the
* With-Context parameter to be passed. The type of this structure is
* OCIExtProcContext is is opaque to the user.
*
* The user can declare the With-Context parameter in the application as
*
* OCIExtProcContext *with_context;
*/
typedef struct OCIExtProcContext OCIExtProcContext;
/* NOTE: OCIExtProcContext must be visible prior to including <oci.h> */
# ifndef OCI_ORACLE
# include <oci.h>
# endif
/* ----------------------- OCIExtProcAllocCallMemory ----------------------- */
/* OCIExtProcAllocCallMemory
* Allocate N bytes of memory for the duration of the External Procedure.
*
* Memory thus allocated will be freed by PL/SQL upon return from the
* External Procedure. You must not use any kind of 'free' function on
* memory allocated by OCIExtProcAllocCallMemory.
* Use this function to allocate memory for function returns.
*
* PARAMETERS
* Input :
* with_context - The with_context pointer that is passed to the C
* External Procedure.
* Type of with_context : OCIExtProcContext *
* amount - The number of bytes to allocate.
* Type of amount : size_t
*
* Output :
* Nothing
*
* Return :
* An untyped (opaque) Pointer to the allocated memory.
*
* Errors :
* A 0 return value should be treated as an error
*
* EXAMPLE
* text *ptr = (text *)OCIExtProcAllocCallMemory(wctx, 1024)
*
*/
#define OCIExtProcAllocCallMemory(with_context, amount) \
ociepacm(with_context, (size_t)amount)
/* -------------------------- OCIExtProcRaiseExcp -------------------------- */
/* OCIExtProcRaiseExcp
* Raise an Exception to PL/SQL.
*
* Calling this function signalls an exception back to PL/SQL. After a
* successful return from this function, the External Procedure must start
* its exit handling and return back to PL/SQL. Once an exception is
* signalled to PL/SQL, INOUT and OUT arguments, if any, are not processed
* at all.
*
* PARAMETERS
* Input :
* with_context - The with_context pointer that is passed to the C
* External Procedure.
* Type of with_context : OCIExtProcContext *
* errnum - Oracle Error number to signal to PL/SQL. errnum
* must be a positive number and in the range 1 to MAX_OEN
* Type of errnum : int
* Output :
* Nothing
*
* Return :
* OCIEXTPROC_SUCCESS - If the call was successful.
* OCIEXTPROC_ERROR - If the call failed.
*
*/
#define OCIExtProcRaiseExcp(with_context, errnum) \
ocieperr(with_context, (int)errnum)
/* ---------------------- OCIExtProcRaiseExcpWithMsg ---------------------- */
/* OCIExtProcRaiseExcpWithMsg
* Raise an exception to PL/SQL. In addition, substitute the
* following error message string within the standard Oracle error
* message string. See note for OCIExtProcRaiseExcp
*
* PARAMETERS
* Input :
* with_context - The with_context pointer that is passed to the C
* External Procedure.
* Type of with_context : OCIExtProcContext *
* errnum - Oracle Error number to signal to PL/SQL. errnum
* must be a positive number and in the range 1 to MAX_OEN
* Type of errnum : int
* errmsg - The error message associated with the errnum.
* Type of errmsg : char *
* len - The length of the error message. 0 if errmsg is
* null terminated string.
* Type of len : size_t
* Output :
* Nothing
*
* Return :
* OCIEXTPROC_SUCCESS - If the call was successful.
* OCIEXTPROC_ERROR - If the call failed.
*
*/
#define OCIExtProcRaiseExcpWithMsg(with_context, errnum, errmsg, msglen) \
ociepmsg(with_context, (int)errnum, errmsg, (size_t)msglen)
/* --------------------------- OCIExtProcGetEnv --------------------------- */
/* OCIExtProcGetEnv
* Get OCI Environment
*
* PARAMETERS
* Input :
* with_context - The with_context pointer that is passed to the C
* External Procedure.
*
* Output :
* envh - The OCI Environment handle.
* svch - The OCI Service handle.
* errh - The OCI Error handle.
*
* Return :
* OCI_SUCCESS - Successful completion of the function.
* OCI_ERROR - Error.
*
*/
#define OCIExtProcGetEnv(with_context, envh, svch, errh) \
ociepgoe(with_context, envh, svch, errh)
/* ------------------------ OCIInitializeStatementHandle ------------------- */
/* OCIreateStatementHandle
* Initialize Statement Handle
*
* PARAMETERS
* Input :
* wctx - The
* cursorno - The cursor number for which we need to initialize
* the statement handle
* svch - The OCI Service handle.
*
* Output :
* stmthp - The OCI Statement handle.
* errh - The OCI Error handle.
*
* Return :
* OCI_SUCCESS - Successful completion of the function.
* OCI_ERROR - Error.
*
*/
#define OCIInitializeStatementHandle(wctx, cursorno, svch, stmthp, errh) \
ociepish(wctx, cursor, svch, stmthp, errh)
/*---------------------------------------------------------------------------
PRIVATE TYPES AND CONSTANTS
---------------------------------------------------------------------------*/
/*---------------------------------------------------------------------------
PUBLIC FUNCTIONS
---------------------------------------------------------------------------*/
/*---------------------------------------------------------------------------
PRIVATE FUNCTIONS
---------------------------------------------------------------------------*/
void *ociepacm(OCIExtProcContext *with_context, size_t amount);
size_t ocieperr(OCIExtProcContext *with_context, int error_number);
size_t ociepmsg(OCIExtProcContext *with_context, int error_number,
oratext *error_message, size_t len );
sword ociepgoe(OCIExtProcContext *with_context, OCIEnv **envh,
OCISvcCtx **svch, OCIError **errh);
#endif /* OCIEXTP_ORACLE */