Oracle 8i Data Cartridge Developer's Guide Release 2 (8.1.6) Part Number A76937-01 |
|
Reference: Cartridge Services Using C, 2 of 6
The following are OCI external procedure functions for C:
Allocate N bytes of memory for the duration of the External Procedure.
dvoid * OCIExtProcAllocCallMemory ( OCIExtProcContext *with_context, size_t amount )
The with_context pointer that is passed to the C External Procedure. See "With_Context Type"[XXX ADD PAGE REF? XXX].
The number of bytes to allocate.
This call allocates amount bytes of memory for the duration of the call of the external procedure.
Any memory allocated by this call is freed by PL/SQL upon return from the external procedure. The application must not use any kind of free function on memory allocated by OCIExtProcAllocCallMemory(). Use this function to allocate memory for function returns.
A zero return value should be treated as an error
An untyped (opaque) Pointer to the allocated memory.
Keyword/Parameter | Meaning |
---|---|
|
the with_context pointer that is passed to the C External Procedure |
|
the number of bytes to allocate |
text *ptr = (text *)OCIExtProcAllocCallMemory(wctx, 1024)
OCIErrorGet(), OCIMemoryAlloc(). See Oracle8i Application Developer's Guide - Fundamentals for details on these calls.
Raise an Exception to PL/SQL.
size_t OCIExtProcRaiseExcp ( OCIExtProcContext *with_context, int errnum )
The with_context pointer that is passed to the C External Procedure. See "With_Context Type"[XXX ADD PAGE REF? XXX].
Oracle Error number to signal to PL/SQL. errnum must be a positive number and in the range 1 to 32767.
Calling this function signals 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, IN/OUT and OUT arguments, if any, are not processed at all.
Table 13-3 OCIExtProcRaiseExcp Keywords/Parameters
Raise an exception with a message.
size_t OCIExtProcRaiseExcpWithMsg ( OCIExtProcContext *with_context, int errnum, char *errmsg, size_t msglen )
The with_context pointer that is passed to the C External Procedure. See "With_Context Type"[XXX ADD PAGE REF? XXX].
Oracle Error number to signal to PL/SQL. The value of errnum must be a positive number and in the range 1 to 32767
The error message associated with the errnum.
The length of the error message. Pass zero if errmsg is a null terminated string.
Raise an exception to PL/SQL. In addition, substitute the following error message string within the standard Oracle error message string. See the description of OCIExtProcRaiseExcp() for more information.
This function returns OCIEXTPROC_SUCCESS if the call was successful. It returns OCIEXTPROC_ERROR if the call has failed.
Gets the OCI environment, service context, and error handles.
sword OCIExtProcGetEnv ( OCIExtProcContext *with_context, OCIEnv envh, OCISvcCtx svch, OCIError errh )
The with_context pointer that is passed to the C External Procedure. See "With_Context Type"[XXX ADD PAGE REF? XXX].
The OCI Environment handle.
The OCI Service handle.
The OCI Error handle.
The primary purpose of this function is to allow OCI callbacks to use the database in the same transaction. The OCI handles obtained by this function should be used in OCI callbacks to the database. If these handles are obtained through standard OCI calls, then these handles use a new connection to the database and cannot be used for callbacks in the same transaction. In one external procedure you can use either callbacks or a new connection, but not both.
This function returns OCI_SUCCESS if the call was successful; otherwise, it returns OCI_ERROR.
OCIEnvCreate(), OCIAttrGet(), OCIHandleAlloc(). See Oracle8i Application Developer's Guide - Fundamentals for details on these calls.
|
![]() Copyright © 1996-2000, Oracle Corporation. All Rights Reserved. |
|