| /* Copyright (c) 1996, 2011, Oracle and/or its affiliates. |
| All rights reserved. */ |
| |
| /* |
| NAME |
| ociap.h |
| |
| DESCRIPTION |
| Oracle Call Interface - Ansi Prototypes |
| |
| RELATED DOCUMENTS |
| |
| INSPECTION STATUS |
| Inspection date: |
| Inspection status: |
| Estimated increasing cost defects per page: |
| Rule sets: |
| |
| ACCEPTANCE REVIEW STATUS |
| Review date: |
| Review status: |
| Reviewers: |
| |
| PUBLIC FUNCTION(S) |
| OCIAttrGet |
| OCIAttrSet |
| OCIBindArrayOfStruct |
| OCIBindByName |
| OCIBindByPos |
| OCIBindDynamic |
| OCIBindObject |
| OCIBreak |
| OCIConnectionPoolCreate |
| OCISessionPoolCreate |
| OCISessionGet |
| OCISessionRelease |
| OCIDateTimeAssign |
| OCIDateTimeCheck |
| OCIDateTimeCompare |
| OCIDateTimeConvert |
| OCIDateTimeFromText |
| OCIDateTimeGetDate |
| OCIDateTimeGetTime |
| OCIDateTimeGetTime |
| OCIDateTimeGetTimeZoneOffset |
| OCIDateTimeSysTimeStamp |
| OCIDateTimeIntervalAdd |
| OCIDateTimeIntervalSub |
| OCIDateTimeConstruct |
| OCIDateTimeSubtract |
| OCIDateTimeToText |
| OCIDateTimeGetTimeZoneName |
| OCIDateTimeToArray |
| OCIDateTimeFromArray |
| OCIRowidToChar |
| OCIDefineArrayOfStruct |
| OCIDefineByPos |
| OCIDefineDynamic |
| OCIDefineObject |
| OCIDescAlloc |
| OCIDescFree |
| OCIDescribeAny |
| OCIEnvCreate |
| OCIEnvNlsCreate |
| OCIEnvInit |
| OCIErrorGet |
| OCIExtractSetKey |
| OCIExtractFromFile |
| OCIIntervalSubtract |
| OCIIntervalMultiply |
| OCIIntervalToNumber |
| OCIIntervalToText |
| OCIIntervalFromTZ |
| OCIKerbAttrSet |
| OCILdaToSvcCtx |
| OCILobAppend |
| OCILobAssign |
| OCILobCharSetForm |
| OCILobCharSetId |
| OCILobCopy |
| OCILobCreateTemporary |
| OCILobDisableBuffering |
| OCILobEnableBuffering |
| OCILobErase |
| OCILobOpen |
| OCILobClose |
| OCILobFileClose |
| OCILobFileCLoseAll |
| OCILobFileExists |
| OCILobFileGetName |
| OCILobFileIsOpen |
| OCILobFileOpen |
| OCILobFileSetName |
| OCILobFlushBuffer |
| OCILobFreeTemporary |
| OCILobGetChunkSize |
| OCILobGetLength |
| OCILobIsEqual |
| OCILobIsTemporary |
| OCILobLoadFromFile |
| OCILobLocatorAssign |
| OCILobLocatorIsInit |
| OCILobRead |
| OCILobTrim |
| OCILobWrite |
| OCILobWriteAppend |
| OCILobGetStorageLimit |
| OCILobGetOptions |
| OCILobSetOptions |
| OCILobGetContentType |
| OCILobSetContentType |
| OCILogoff |
| OCILogon |
| OCILogon2 |
| OCIMemoryFree |
| OCIParamGet |
| OCIParamGet |
| OCIPasswordChange |
| OCIReset |
| OCIResultSetToStmt |
| OCIServerAttach |
| OCIServerDetach |
| OCIServerVersion |
| OCISessionBegin |
| OCISessionEnd |
| OCIStmtExecute |
| OCIStmtFetch |
| OCIStmtFetch2 |
| OCIStmtGetPieceInfo |
| OCIStmtPrepare |
| OCIStmtPrepare2 |
| OCIStmtRelease |
| OCIStmtSetPieceInfo |
| OCIFormatString |
| OCISvcCtxToLda |
| OCITransCommit |
| OCITransDetach |
| OCITransForget |
| OCITransMultiPrepare |
| OCITransPrepare |
| OCITransRollback |
| OCITransStart |
| OCIInitialize |
| OCIEnvCreate |
| OCIEnvNlsCreate |
| OCIFEnvCreate |
| OCIHandleAlloc |
| OCIDescriptorAlloc |
| OCIDescriptorFree |
| OCIArrayDescriptorAlloc |
| OCIArrayDescriptorFree |
| OCIEnvInit |
| OCIServerAttach |
| OCISessionBegin |
| OCISessionEnd |
| OCILogon |
| OCILogon2 |
| OCIPasswordChange |
| OCIStmtPrepare |
| OCIStmtPrepare2 |
| OCIStmtRelease |
| OCIBindByPos |
| OCIBindByName |
| OCIBindObject |
| OCIBindDynamic |
| OCIBindArrayOfStruct |
| OCIStmtGetPieceInfo |
| OCIStmtSetPieceInfo |
| OCIStmtExecute |
| OCIDefineByPos |
| OCIDefineObject |
| OCIDefineDynamic |
| OCIRowidToChar |
| OCIDefineArrayOfStruct |
| OCIStmtFetch |
| OCIStmtFetch2 |
| OCIStmtGetBindInfo |
| OCIDescribeAny |
| OCIParamGet |
| OCIParamSet |
| OCITransStart |
| OCITransMultiPrepare |
| OCIErrorGet |
| OCILobAppend |
| OCILobAssign |
| OCILobCharSetForm |
| OCILobCharSetId |
| OCILobCopy |
| OCILobCreateTemporary |
| OCILobClose |
| OCILobDisableBuffering |
| OCILobEnableBuffering |
| OCILobErase |
| OCILobFileClose |
| OCILobFileExists |
| OCILobFileGetName |
| OCILobFileIsOpen |
| OCILobFileOpen |
| OCILobFileSetName |
| OCILobFlushBuffer |
| OCILobFreeTemporary |
| OCILobGetChunkSize |
| OCILobGetLength |
| OCILobIsEqual |
| OCILobIsOpen |
| OCILobIsTemporary |
| OCILobLoadFromFile |
| OCILobLocatorAssign |
| OCILobLocatorIsInit |
| OCILobOpen |
| OCILobRead |
| OCILobTrim |
| OCILobWrite |
| OCILobWriteAppend |
| OCIServerVersion |
| OCIServerRelease |
| OCIAttrGet |
| OCIAttrSet |
| OCIUserCallbackRegister |
| OCIUserCallbackGet |
| OCISharedLibInit |
| OCIFileExists |
| OCIFileGetLength |
| OCIFileOpen |
| OCIFileRead |
| OCIFileSeek |
| OCIFileWrite |
| OCILobCopy2 |
| OCILobErase2 |
| OCILobGetLength2 |
| OCILobLoadFromFile2 |
| OCILobRead2 |
| OCILobArrayRead |
| OCILobTrim2 |
| OCILobWrite2 |
| OCILobArrayWrite |
| OCILobWriteAppend2 |
| OCILobGetStorageLimit |
| OCISecurityOpenWallet |
| OCISecurityCloseWallet |
| OCISecurityCreateWallet |
| OCISecurityDestroyWallet |
| OCISecurityStorePersona |
| OCISecurityOpenPersona |
| OCISecurityClosePersona |
| OCISecurityRemovePersona |
| OCISecurityCreatePersona |
| OCISecuritySetProtection |
| OCISecurityGetProtection |
| OCISecurityRemoveIdentity |
| OCISecurityCreateIdentity |
| OCISecurityAbortIdentity |
| OCISecurityFreeIdentity |
| OCISecurityStoreTrustedIdentity |
| OCISecuritySign |
| OCISecuritySignExpansion |
| OCISecurityVerify |
| OCISecurityValidate |
| OCISecuritySignDetached |
| OCISecuritySignDetExpansion |
| OCISecurityVerifyDetached |
| OCISecurity_PKEncrypt |
| OCISecurityPKEncryptExpansion |
| OCISecurityPKDecrypt |
| OCISecurityEncrypt |
| OCISecurityEncryptExpansion |
| OCISecurityDecrypt |
| OCISecurityEnvelope |
| OCISecurityDeEnvelope |
| OCISecurityKeyedHash |
| OCISecurityKeyedHashExpansion |
| OCISecurityHash |
| OCISecurityHashExpansion |
| OCISecuritySeedRandom |
| OCISecurityRandomBytes |
| OCISecurityRandomNumber |
| OCISecurityInitBlock |
| OCISecurityReuseBlock |
| OCISecurityPurgeBlock |
| OCISecuritySetBlock |
| OCISecurityGetIdentity |
| OCIAQEnq |
| OCIAQDeq |
| OCIAQEnqArray |
| OCIAQEnqStreaming |
| OCIAQDeqArray |
| OCIAQListen |
| OCIAQListen2 |
| OCIExtractSetKey |
| OCIExtractFromFile |
| OCIExtractToInt |
| OCIExtractToBool |
| OCIExtractToStr |
| OCIExtractToOCINum |
| OCIExtractFromList |
| OCIMemoryAlloc |
| OCIMemoryResize |
| OCIContextSetValue |
| OCIContextGetValue |
| OCIContextClearValue |
| OCIMemorySetCurrentIDs |
| OCIPicklerTdsCtxInit |
| OCIPicklerTdsInit |
| OCIPicklerTdsCreateElementNumber |
| OCIPicklerTdsCreateElementChar |
| OCIPicklerTdsCreateElementVarchar |
| OCIPicklerTdsCreateElementRaw |
| OCIPicklerTdsCreateElement |
| OCIPicklerTdsAddAttr |
| OCIPicklerTdsGenerate |
| OCIPicklerTdsGetAttr |
| OCIPicklerFdoInit |
| OCIPicklerFdoFree |
| OCIPicklerImageInit |
| OCIPicklerImageFree |
| OCIPicklerImageAddScalar |
| OCIPicklerImageAddNullScalar |
| OCIPicklerImageGenerate |
| OCIPicklerImageGetScalarSize |
| OCIPicklerImageGetScalar |
| OCIPicklerImageCollBegin |
| OCIPicklerImageCollAddScalar |
| OCIPicklerImageCollEnd |
| OCIPicklerImageCollBeginScan |
| OCIPicklerImageCollGetScalarSize |
| OCIPicklerImageCollGetScalar |
| OCIAnyDataGetType |
| OCIAnyDataIsNull |
| OCIAnyDataConvert |
| OCIAnyDataBeginCreate |
| OCIAnyDataAttrSet |
| OCIAnyDataCollAddElem |
| OCIAnyDataEndCreate |
| OCIAnyDataAccess |
| OCIAnyDataGetCurrAttrNum |
| OCIAnyDataAttrGet |
| OCIAnyDataCollGetElem |
| OCIPicklerTdsCtxInit |
| OCIPicklerTdsInit |
| OCIPicklerTdsCreateElementNumber |
| OCIPicklerTdsCreateElementChar |
| OCIPicklerTdsCreateElementVarchar |
| OCIPicklerTdsCreateElementRaw |
| OCIPicklerTdsCreateElement |
| OCIPicklerTdsAddAttr |
| OCIPicklerTdsGenerate |
| OCIPicklerTdsGetAttr |
| OCIPicklerFdoInit |
| OCIPicklerFdoFree |
| OCIPicklerImageInit |
| OCIPicklerImageFree |
| OCIPicklerImageAddScalar |
| OCIPicklerImageAddNullScalar |
| OCIPicklerImageGenerate |
| OCIPicklerImageGetScalarSize |
| OCIPicklerImageGetScalar |
| OCIPicklerImageCollBegin |
| OCIPicklerImageCollAddScalar |
| OCIPicklerImageCollEnd |
| OCIPicklerImageCollBeginScan |
| OCIPicklerImageCollGetScalarSize |
| OCIPicklerImageCollGetScalar |
| OCIAnyDataGetType |
| OCIAnyDataIsNull |
| OCIAnyDataConvert |
| OCIAnyDataBeginCreate |
| OCIAnyDataAttrSet |
| OCIAnyDataCollAddElem |
| OCIAnyDataEndCreate |
| OCIAnyDataAccess |
| OCIAnyDataGetCurrAttrNum |
| OCIAnyDataAttrGet |
| OCIAnyDataCollGetElem |
| OCIPicklerTdsCtxInit |
| OCIPicklerTdsInit |
| OCIPicklerTdsCreateElementNumber |
| OCIPicklerTdsCreateElementChar |
| OCIPicklerTdsCreateElementVarchar |
| OCIPicklerTdsCreateElementRaw |
| OCIPicklerTdsCreateElement |
| OCIPicklerTdsAddAttr |
| OCIPicklerTdsGenerate |
| OCIPicklerTdsGetAttr |
| OCIPicklerFdoInit |
| OCIPicklerFdoFree |
| OCIPicklerImageInit |
| OCIPicklerImageFree |
| OCIPicklerImageAddScalar |
| OCIPicklerImageAddNullScalar |
| OCIPicklerImageGenerate |
| OCIPicklerImageGetScalarSize |
| OCIPicklerImageGetScalar |
| OCIPicklerImageCollBegin |
| OCIPicklerImageCollAddScalar |
| OCIPicklerImageCollEnd |
| OCIPicklerImageCollBeginScan |
| OCIPicklerImageCollGetScalarSize |
| OCIPicklerImageCollGetScalar |
| OCIAnyDataGetType |
| OCIAnyDataIsNull |
| OCIAnyDataConvert |
| OCIAnyDataBeginCreate |
| OCIAnyDataAttrSet |
| OCIAnyDataCollAddElem |
| OCIAnyDataEndCreate |
| OCIAnyDataAccess |
| OCIAnyDataGetCurrAttrNum |
| OCIAnyDataAttrGet |
| OCIAnyDataCollGetElem |
| OCIAnyDataSetBeginCreate |
| OCIAnyDataSetDestroy |
| OCIAnyDataSetAddInstance |
| OCIAnyDataSetEndCreate |
| OCIAnyDataSetGetType |
| OCIAnyDataSetGetCount |
| OCIAnyDataSetGetInstance |
| OCIFormatString |
| OCINlsGetInfo |
| OCINlsNameMap |
| OCIMultiByteToWideChar |
| OCIMultiByteInSizeToWideChar |
| OCIWideCharToMultiByte |
| OCIWideCharInSizeToMultiByte |
| OCIWideCharStrcmp |
| OCIWideCharStrncmp |
| OCIWideCharStrcat |
| *OCIWideCharStrchr |
| OCIWideCharStrcpy |
| OCIWideCharStrncat |
| OCIWideCharStrncpy |
| *OCIWideCharStrrchr |
| OCIWideCharStrCaseConversion |
| OCIMultiByteStrcmp |
| OCIMultiByteStrncmp |
| OCIMultiByteStrcat |
| OCIMultiByteStrcpy |
| OCIMultiByteStrncat |
| OCIMultiByteStrncpy |
| OCIMultiByteStrnDisplayLength |
| OCIMultiByteStrCaseConversion |
| OCICharSetToUnicode |
| OCIUnicodeToCharSet |
| OCINlsCharSetConvert |
| OCINlsEnvironmentVariableGet |
| OCIMessageOpen |
| OCIMessageGet |
| OCIThreadMutexInit |
| OCIThreadMutexDestroy |
| OCIThreadMutexAcquire |
| OCIThreadMutexRelease |
| OCIThreadKeyInit |
| OCIThreadKeyDestroy |
| OCIThreadKeyGet |
| OCIThreadKeySet |
| OCIThreadIdSet |
| OCIThreadIdSetNull |
| OCIThreadIdGet |
| OCIThreadIdSame |
| OCIThreadIdNull |
| OCIThreadHndInit |
| OCIThreadHndDestroy |
| OCIThreadCreate |
| OCIThreadHandleGet |
| OCIThreadMutexInit |
| OCIThreadMutexDestroy |
| OCIThreadMutexAcquire |
| OCIThreadMutexRelease |
| OCIThreadKeyInit |
| OCIThreadKeyDestroy |
| OCIThreadKeyGet |
| OCIThreadKeySet |
| OCIThreadIdSet |
| OCIThreadIdSame |
| OCIThreadIdNull |
| OCIThreadCreate |
| OCISubscriptionRegister |
| OCISubscriptionPost |
| OCISubscriptionUnRegister |
| OCISubscriptionDisable |
| OCISubscriptionEnable |
| OCIDateTimeGetTime |
| OCIDateTimeGetDate |
| OCIDateTimeGetTimeZoneOffset |
| OCIDateTimeConstruct |
| OCIDateTimeSysTimeStamp |
| OCIDateTimeAssign |
| OCIDateTimeToText |
| OCIDateTimeFromText |
| OCIDateTimeCompare |
| OCIDateTimeCheck |
| OCIDateTimeConvert |
| OCIDateTimeSubtract |
| OCIDateTimeIntervalAdd |
| OCIDateTimeIntervalSub |
| OCIIntervalSubtract |
| OCIIntervalAdd |
| OCIIntervalMultiply |
| OCIIntervalDivide |
| OCIIntervalCompare |
| OCIIntervalFromNumber |
| OCIIntervalFromText |
| OCIIntervalToText |
| OCIIntervalToNumber |
| OCIIntervalCheck |
| OCIIntervalAssign |
| OCIIntervalSetYearMonth |
| OCIIntervalGetYearMonth |
| OCIIntervalSetDaySecond |
| OCIIntervalGetDaySecond |
| OCIDateTimeToArray |
| OCIDateTimeFromArray |
| OCIDateTimeGetTimeZoneName |
| OCIIntervalFromTZ |
| OCIConnectionPoolCreate |
| OCIConnectionPoolDestroy |
| OCISessionPoolCreate |
| OCISessionPoolDestroy |
| OCISessionGet |
| OCISessionRelease |
| OCIAppCtxSet |
| OCIAppCtxClearAll |
| OCIMemStats |
| OCIKerbAttrSet |
| OCIDBStartup |
| OCIDBShutdown |
| OCIClientVersion |
| OCIInitEventHandle |
| OCIStmtBindByPos |
| OCIStmtBindByName |
| |
| PRIVATE FUNCTION(S) |
| |
| EXAMPLES |
| |
| NOTES |
| |
| MODIFIED (MM/DD/YY) |
| slari 03/24/11 - OCIRoundTripCallback |
| slynn 03/18/08 - OCILobSet/SetContenttype->OCILobGet/SetContentType |
| amullick 02/11/08 - add OCILobGet/SetContenttype APIs |
| schoi 02/27/07 - OCILobGet/SetOptions API change |
| slynn 07/28/06 - Migrate to new 11g LOB terminology |
| hqian 05/22/06 - add OCI_SYSASM |
| slynn 06/21/06 - Add Lob Get Shared Regions Functionality |
| slynn 05/25/06 - New NG Lob Functionality. |
| jawilson 05/22/06 - add TDO out parameter for streaming enq callback |
| aramappa 01/19/06 - Added OCIArrayDescriptorAlloc, |
| OCIArrayDescriptorFree |
| jawilson 02/09/06 - add OCIAQEnqStreaming |
| mxu 03/08/06 - Fix bug 5037807 |
| srseshad 09/12/05 - stmtcache: callback |
| mbastawa 09/16/05 - dbhygiene |
| dmukhin 06/29/05 - ANSI prototypes; miscellaneous cleanup |
| nbhatt 06/17/04 - merge conflicts |
| nbhatt 05/24/04 - merge conflicts |
| weiwang 05/06/04 - add OCIAQListen2 |
| rvissapr 06/21/04 - add OCIAppCtx API |
| debanerj 05/17/04 - 13064: LOB array Read and Write |
| aahluwal 06/02/04 - [OCI Events]: add OCIInitEventHandle |
| nikeda 05/28/04 - grabtrans 'nikeda_oci_events_copy' |
| nikeda 05/13/04 - [OCI Events] Rename HACBK->EVTCBK, HACTX->EVTCTX |
| nikeda 05/10/04 - [OCI Events] code review changes |
| aahluwal 04/09/04 - [OCI Events]: add OCIHAServerHandleGet |
| nikeda 03/18/04 - [OCI Events] New Server Handle Callback |
| dfrumkin 12/04/03 - Add OCIDBStartup, OCIDBShutdown |
| jciminsk 12/12/03 - merge from RDBMS_MAIN_SOLARIS_031209 |
| sgollapu 06/26/03 - Change OCIPing prototype |
| sgollapu 05/05/03 - Add OCIPing |
| debanerj 01/16/03 - Bug 2753018: Lob Locator parameter for |
| OCILobGetStorageLimit |
| rpingte 05/06/04 - add OCIClientVersion |
| debanerj 08/26/03 - 6003: Lob interface changes |
| sgollapu 06/23/03 - Add OCIPing |
| debanerj 01/16/03 - Bug 2753018: Lob Locator parameter for |
| OCILobGetStorageLimit |
| tkeefe 02/17/03 - bug-2773794: Add new interface for setting Kerb attrs |
| ataracha 01/03/03 - Move OCIXMLType functions to ocixml.h |
| akatti 11/28/02 - [2521361]:add OCIRowidToChar prototype |
| chliang 10/23/02 - add OCIFetchRowCallback |
| cparampa 10/13/02 - Fix the prototype of OCIAQListen(ansi prototype) |
| chliang 10/12/02 - add OCIBindRowCallback |
| debanerj 09/30/02 - Unlimited size LOB 6003 |
| thoang 09/25/02 - Add csid to XMLType create functions |
| thoang 04/19/02 - Add OCIXMLTypeGetNS |
| aahluwal 08/09/02 - adding OCIAQDeqArray |
| aahluwal 06/03/02 - bug 2360115 |
| skabraha 04/16/02 - fix compiler warnings |
| sichandr 02/12/02 - fix OCIXMLTypeExists |
| gayyappa 02/01/02 - fix 2210776 : change Dom to DOM |
| sichandr 10/24/01 - OCISvcCtx for XMLType create routines |
| schandir 09/14/01 - Add prototypes for Stmt Caching |
| abande 09/04/01 - Add Prototypes for Session Pooling Methods |
| stakeda 09/12/01 - add OCINlsCharSetConvert |
| whe 08/28/01 - add OCIEnvNlsCreate |
| wzhang 08/22/01 - Add OCINlsCharSetNameToId. |
| whe 10/05/01 - add prototype for OCIXMLType functions |
| mdmehta 04/06/01 - Bug 1683763, OCIDateTimeToText: buf_size to ub4* |
| schandir 12/12/00 - modify the ociconnectionpoolcreate() interface. |
| porangas 12/04/00 - Forward merge bug#974710 to 9i |
| rpingte 11/29/00 - Fix bug# 1485795. |
| gtarora 11/30/00 - fix comment for OCILobIsTemporary |
| akatti 11/07/00 - [1198379]:add OCIRowidToChar |
| bpalaval 10/15/00 - Forward merge 892654. |
| kmohan 09/18/00 - add OCILogon2 |
| etucker 07/28/00 - add OCIIntervalFromTZ |
| vjayaram 07/18/00 - add connection pooling changes |
| etucker 07/13/00 - add dls apis for oci |
| hmasaki 07/05/00 - fix 1230846: forward merge into 8.2 |
| mbastawa 06/05/00 - add OCIStmtFetch2 |
| rxgovind 06/07/00 - update OCIAnyData interfaces |
| rxgovind 05/04/00 - add OCIAnyDataSet interfaces |
| rkasamse 05/01/00 - remove attrno from OCIAnyDataAttrGet |
| rkasamse 03/13/00 - add prototype s for OCCIAnyData |
| slari 09/01/99 - remove OCIEnvCallback |
| slari 08/23/99 - add OCIUcb in user callback functions |
| dsaha 07/07/99 - Add OCIFEnvCreate for forms |
| vyanaman 06/21/99 - Change OCI DateTime/Interval APIs. |
| esoyleme 07/01/99 - expose MTS performance enhancements |
| whe 06/14/99 - bug727872:add CONST to match definitions |
| kkarun 02/23/99 - Fix OCIDateTime APIs |
| jiyang 12/07/98 - Add comments for OCI_NLS_DUAL_CURRENCY |
| aroy 12/01/98 - add OCIEnvCreate |
| slari 11/23/98 - use ORASTDARG |
| slari 11/21/98 - replace ellipsis by arglist in OCIUserCallback |
| thchang 10/20/98 - correct comment on OCILobCreateTemporary |
| slari 09/08/98 - allow envh to receive error info also in CallbackReg/ |
| kkarun 09/02/98 - Change const to CONST |
| aroy 08/04/98 - add OCITerminate calls |
| nramakri 06/25/98 - remove CONST from some OCIPickler APIs |
| jiyang 06/22/98 - Fix a lint error |
| nmallava 06/08/98 - ociistemporary -> envhp |
| jhasenbe 05/27/98 - Remove definitions for U-Calls (Unicode) |
| nmallava 05/18/98 - add comments |
| sgollapu 05/19/98 - Change text to OraText |
| aroy 04/20/98 - merge forward 8.0.5 -> 8.1.3 |
| nbhatt 05/14/98 - aq listen call |
| lchidamb 03/02/98 - Client Notification prototypes |
| vyanaman 04/19/98 - System Timestamp |
| kkarun 04/17/98 - Add more Interval functions |
| vyanaman 04/17/98 - Fix min (proc error) |
| vyanaman 04/16/98 - Add get/set TZ |
| kkarun 04/13/98 - Add Datetime prototypes |
| rkasamse 04/13/98 - change OCIEnv* to dvoid* for context/memory cart serv |
| rkasamse 04/15/98 - chage pickler cart interface |
| slari 03/20/98 - change proto of OCIUserCallback |
| slari 02/17/98 - add OCIUserCallback |
| jiyang 04/02/98 - Accept both env and user handles for NLS |
| rkasamse 03/20/98 - remove prototypes for OCIMemoryDuration* functions. |
| tsaulys 03/20/98 - use environment or session handle |
| nmallava 04/09/98 - OCILobLocatorAssign |
| nmallava 04/07/98 - lobgetchunksize and writeappend apis |
| jhasenbe 04/06/98 - Add new interfaces for Unicode support |
| nmallava 03/17/98 - add interfaces |
| nmallava 03/16/98 - add open/close apis |
| nmallava 03/10/98 - add temporary lobs apis |
| sgollapu 07/10/97 - Add OCIReset |
| sgollapu 02/09/98 - OCI non-blocking |
| nramakri 01/16/98 - remove #ifdef NEVER clause for OCIExtract |
| rmurthy 01/08/98 - OCIContextGenerateKey: change ub1 to ub4 |
| ewaugh 12/18/97 - Turn type wrappers into functions. |
| skabraha 12/02/97 - adding OCIFile functions |
| rhwu 12/02/97 - add OCI Thread |
| nramakri 12/15/97 - move to core4 |
| nramakri 12/11/97 - modify OCIExtract prototype |
| ewaugh 12/10/97 - add OCIFormat prototypes |
| nmallava 12/17/97 - Add ilob open and close apis |
| rkasamse 12/03/97 - Change some of the function names for pickler cartrid |
| nramakri 11/12/97 - add OCIExtract prototypes |
| rkasamse 11/21/97 - add prototypes for memory cartridge services and cont |
| rkasamse 11/03/97 - Add pickler cartridge interfaces. |
| jiyang 11/11/97 - Add NLS service for cartridge |
| tanguyen 08/19/97 - |
| cxcheng 07/30/97 - replace OCISvcCtx with OCISvcCtx |
| schandra 06/25/97 - AQ OCI interface |
| bnainani 07/21/97 - add prototypes for Oracle XA extensions |
| esoyleme 05/13/97 - move failover callback prototype |
| skmishra 05/06/97 - stdc compiler fixes |
| skmishra 04/24/97 - C++ Compatibility changes |
| skotsovo 04/21/97 - make lob parameter names consistent |
| rwhitman 04/16/97 - Fix LOB prototypes - Olint OCI 8.0.3 |
| ramkrish 04/15/97 - Add free flag to OCILobFlushBuffer |
| dchatter 04/10/97 - add nzt.h inclusion |
| cxcheng 04/09/97 - change objnamp from CONST text* to dvoid* |
| cxcheng 04/08/97 - fix prototype of OCIDescribeAny() |
| skotsovo 03/31/97 - remove OCILobLocatorSize |
| skotsovo 03/27/97 - add OCILobLoadFromFile |
| bcchang 02/18/97 - Fix syntax error |
| dchatter 01/13/97 - fix comments on LOB calls |
| aroy 01/10/97 - remove ocilobfilecreate delete |
| sgollapu 12/27/96 - Correct OCILogon prototype |
| dchatter 01/04/97 - comments to describe the functions |
| sgollapu 11/25/96 - Change OCILobFileIsExistent |
| schandra 11/18/96 - Remove xa.h include |
| sgollapu 11/09/96 - Change prototype of OCIDescribeAny |
| dchatter 10/31/96 - delete CONST from lob write cb fn |
| dchatter 10/30/96 - more changes |
| dchatter 10/26/96 - lob/file long name corrections |
| slari 10/16/96 - delete unused calls |
| rwessman 10/29/96 - Fixed OCISecurityGetIdentity prototype |
| bcchang 10/25/96 - Fix syntax error |
| sgollapu 10/22/96 - Add OCILogon and OCILogoff |
| rwessman 10/16/96 - Added cryptographic and digital signature functions |
| sgollapu 10/10/96 - Add ocibdp and ocibdn |
| rxgovind 10/07/96 - add oci file calls |
| skotsovo 10/01/96 - move orl lob fnts to oci |
| skotsovo 09/20/96 - in OCILobGetLength(), remove the 'isnull' parameter. |
| aroy 08/29/96 - change prototype for Nchar Lob support |
| dchatter 08/21/96 - OCIResultSetToStmt prototype change |
| sthakur 08/14/96 - add OCIParamSet |
| schandra 07/26/96 - TX OCI return values - sb4->sword |
| aroy 07/17/96 - terminology change: OCILobLocator => OCILobLocator |
| dchatter 07/01/96 - create ANSI prototypes |
| dchatter 07/01/96 - Creation |
| |
| */ |
| |
| |
| #ifndef OCIAP_ORACLE |
| # define OCIAP_ORACLE |
| |
| # ifndef ORATYPES |
| # include <oratypes.h> |
| # endif |
| |
| #ifndef ORASTDARG |
| #include <stdarg.h> |
| #define ORASTDARG |
| #endif |
| |
| #ifndef OCIDFN |
| #include <ocidfn.h> |
| #endif |
| |
| #ifndef NZT_ORACLE |
| #include <nzt.h> |
| #endif /* NZT_ORACLE */ |
| |
| #ifndef OCI_ORACLE |
| #include <oci.h> |
| #endif |
| |
| #ifndef ORT_ORACLE |
| #include <ort.h> |
| #endif |
| |
| |
| |
| /*--------------------------------------------------------------------------- |
| PUBLIC TYPES AND CONSTANTS |
| ---------------------------------------------------------------------------*/ |
| |
| |
| /*--------------------------------------------------------------------------- |
| PRIVATE TYPES AND CONSTANTS |
| ---------------------------------------------------------------------------*/ |
| |
| |
| /*--------------------------------------------------------------------------- |
| PUBLIC FUNCTIONS |
| ---------------------------------------------------------------------------*/ |
| |
| /***************************************************************************** |
| DESCRIPTION |
| ****************************************************************************** |
| Note: the descriptions of the functions are alphabetically arranged. Please |
| maintain the arrangement when adding a new function description. The actual |
| prototypes are below this comment section and donot follow any alphabetical |
| ordering. |
| |
| |
| --------------------------------OCIAttrGet------------------------------------ |
| |
| OCIAttrGet() |
| Name |
| OCI Attribute Get |
| Purpose |
| This call is used to get a particular attribute of a handle. |
| Syntax |
| sword OCIAttrGet ( const void *trgthndlp, |
| ub4 trghndltyp, |
| void *attributep, |
| ub4 *sizep, |
| ub4 attrtype, |
| OCIError *errhp ); |
| Comments |
| This call is used to get a particular attribute of a handle. |
| See Appendix B, "Handle Attributes", for a list of handle types and their |
| readable attributes. |
| Parameters |
| trgthndlp (IN) - is the pointer to a handle type. |
| trghndltyp (IN) - is the handle type. |
| attributep (OUT) - is a pointer to the storage for an attribute value. The |
| attribute value is filled in. |
| sizep (OUT) - is the size of the attribute value. |
| This can be passed in as NULL for most parameters as the size is well known. |
| For text* parameters, a pointer to a ub4 must be passed in to get the length |
| of the string. |
| attrtype (IN) - is the type of attribute. |
| errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for |
| diagnostic information in the event of an error. |
| Related Functions |
| OCIAttrSet() |
| |
| --------------------------------OCIAttrSet------------------------------------ |
| |
| |
| OCIAttrSet() |
| Name |
| OCI Attribute Set |
| Purpose |
| This call is used to set a particular attribute of a handle or a descriptor. |
| Syntax |
| sword OCIAttrSet ( void *trgthndlp, |
| ub4 trghndltyp, |
| void *attributep, |
| ub4 size, |
| ub4 attrtype, |
| OCIError *errhp ); |
| Comments |
| This call is used to set a particular attribute of a handle or a descriptor. |
| See Appendix B for a list of handle types and their writeable attributes. |
| Parameters |
| trghndlp (IN/OUT) - the pointer to a handle type whose attribute gets |
| modified. |
| trghndltyp (IN/OUT) - is the handle type. |
| attributep (IN) - a pointer to an attribute value. |
| The attribute value is copied into the target handle. If the attribute value |
| is a pointer, then only the pointer is copied, not the contents of the pointer. |
| size (IN) - is the size of an attribute value. This can be passed in as 0 for |
| most attributes as the size is already known by the OCI library. For text* |
| attributes, a ub4 must be passed in set to the length of the string. |
| attrtype (IN) - the type of attribute being set. |
| errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for |
| diagnostic information in the event of an error. |
| Related Functions |
| OCIAttrGet() |
| |
| |
| |
| --------------------------------OCIBindArrayOfStruct-------------------------- |
| |
| |
| |
| OCIBindArrayOfStruct() |
| Name |
| OCI Bind for Array of Structures |
| Purpose |
| This call sets up the skip parameters for a static array bind. |
| Syntax |
| sword OCIBindArrayOfStruct ( OCIBind *bindp, |
| OCIError *errhp, |
| ub4 pvskip, |
| ub4 indskip, |
| ub4 alskip, |
| ub4 rcskip ); |
| Comments |
| This call sets up the skip parameters necessary for a static array bind. |
| This call follows a call to OCIBindByName() or OCIBindByPos(). The bind |
| handle returned by that initial bind call is used as a parameter for the |
| OCIBindArrayOfStruct() call. |
| For information about skip parameters, see the section "Arrays of Structures" |
| on page 4-16. |
| Parameters |
| bindp (IN) - the handle to a bind structure. |
| errhp (IN) - an error handle which can be passed to OCIErrorGet() for |
| diagnostic information in the event of an error. |
| pvskip (IN) - skip parameter for the next data value. |
| indskip (IN) - skip parameter for the next indicator value or structure. |
| alskip (IN) - skip parameter for the next actual length value. |
| rcskip (IN) - skip parameter for the next column-level return code value. |
| Related Functions |
| OCIAttrGet() |
| |
| |
| --------------------------------OCIBindByName--------------------------------- |
| |
| OCIBindByName() |
| Name |
| OCI Bind by Name |
| Purpose |
| Creates an association between a program variable and a placeholder in a SQL |
| statement or PL/SQL block. |
| Syntax |
| sword OCIBindByName ( |
| OCIStmt *stmtp, |
| OCIBind **bindp, |
| OCIError *errhp, |
| const OraText *placeholder, |
| sb4 placeh_len, |
| void *valuep, |
| sb4 value_sz, |
| ub2 dty, |
| void *indp, |
| ub2 *alenp, |
| ub2 *rcodep, |
| ub4 maxarr_len, |
| ub4 *curelep, |
| ub4 mode ); |
| Description |
| This call is used to perform a basic bind operation. The bind creates an |
| association between the address of a program variable and a placeholder in a |
| SQL statement or PL/SQL block. The bind call also specifies the type of data |
| which is being bound, and may also indicate the method by which data will be |
| provided at runtime. |
| This function also implicitly allocates the bind handle indicated by the bindp |
| parameter. |
| Data in an OCI application can be bound to placeholders statically or |
| dynamically. Binding is static when all the IN bind data and the OUT bind |
| buffers are well-defined just before the execute. Binding is dynamic when the |
| IN bind data and the OUT bind buffers are provided by the application on |
| demand at execute time to the client library. Dynamic binding is indicated by |
| setting the mode parameter of this call to OCI_DATA_AT_EXEC. |
| Related Functions: For more information about dynamic binding, see |
| the section "Runtime Data Allocation and Piecewise Operations" on |
| page 5-16. |
| Both OCIBindByName() and OCIBindByPos() take as a parameter a bind handle, |
| which is implicitly allocated by the bind call A separate bind handle is |
| allocated for each placeholder the application is binding. |
| Additional bind calls may be required to specify particular attributes |
| necessary when binding certain data types or handling input data in certain |
| ways: |
| If arrays of structures are being utilized, OCIBindArrayOfStruct() must |
| be called to set up the necessary skip parameters. |
| If data is being provided dynamically at runtime, and the application |
| will be using user-defined callback functions, OCIBindDynamic() must |
| be called to register the callbacks. |
| If a named data type is being bound, OCIBindObject() must be called to |
| specify additional necessary information. |
| Parameters |
| stmth (IN/OUT) - the statement handle to the SQL or PL/SQL statement |
| being processed. |
| bindp (IN/OUT) - a pointer to a pointer to a bind handle which is implicitly |
| allocated by this call. The bind handle maintains all the bind information |
| for this particular input value. The handle is feed implicitly when the |
| statement handle is deallocated. |
| errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for |
| diagnostic information in the event of an error. |
| placeholder (IN) - the placeholder attributes are specified by name if |
| ocibindn() is being called. |
| placeh_len (IN) - the length of the placeholder name specified in placeholder. |
| valuep (IN/OUT) - a pointer to a data value or an array of data values of the |
| type specified in the dty parameter. An array of data values can be specified |
| for mapping into a PL/SQL table or for providing data for SQL multiple-row |
| operations. When an array of bind values is provided, this is called an array |
| bind in OCI terms. Additional attributes of the array bind (not bind to a |
| column of ARRAY type) are set up in OCIBindArrayOfStruct() call. |
| For a REF, named data type bind, the valuep parameter is used only for IN |
| bind data. The pointers to OUT buffers are set in the pgvpp parameter |
| initialized by OCIBindObject(). For named data type and REF binds, the bind |
| values are unpickled into the Object Cache. The OCI object navigational calls |
| can then be used to navigate the objects and the refs in the Object Cache. |
| If the OCI_DATA_AT_EXEC mode is specified in the mode parameter, valuep |
| is ignored for all data types. OCIBindArrayOfStruct() cannot be used and |
| OCIBindDynamic() must be invoked to provide callback functions if desired. |
| value_sz (IN) - the size of a data value. In the case of an array bind, this is |
| the maximum size of any element possible with the actual sizes being specified |
| in the alenp parameter. |
| If the OCI_DATA_AT_EXEC mode is specified, valuesz defines the maximum |
| size of the data that can be ever provided at runtime for data types other than |
| named data types or REFs. |
| dty (IN) - the data type of the value(s) being bound. Named data types |
| (SQLT_NTY) and REFs (SQLT_REF) are valid only if the application has been |
| initialized in object mode. For named data types, or REFs, additional calls |
| must be made with the bind handle to set up the datatype-specific attributes. |
| indp (IN/OUT) - pointer to an indicator variable or array. For scalar data |
| types, this is a pointer to sb2 or an array of sb2s. For named data types, |
| this pointer is ignored and the actual pointer to the indicator structure or |
| an array of indicator structures is initialized by OCIBindObject(). |
| Ignored for dynamic binds. |
| See the section "Indicator Variables" on page 2-43 for more information about |
| indicator variables. |
| alenp (IN/OUT) - pointer to array of actual lengths of array elements. Each |
| element in alenp is the length of the data in the corresponding element in the |
| bind value array before and after the execute. This parameter is ignored for |
| dynamic binds. |
| rcodep (OUT) - pointer to array of column level return codes. This parameter |
| is ignored for dynamic binds. |
| maxarr_len (IN) - the maximum possible number of elements of type dty in a |
| PL/SQL binds. This parameter is not required for non-PL/SQL binds. If |
| maxarr_len is non-zero, then either OCIBindDynamic() or |
| OCIBindArrayOfStruct() can be invoked to set up additional bind attributes. |
| curelep(IN/OUT) - a pointer to the actual number of elements. This parameter |
| is only required for PL/SQL binds. |
| mode (IN) - the valid modes for this parameter are: |
| OCI_DEFAULT. This is default mode. |
| OCI_DATA_AT_EXEC. When this mode is selected, the value_sz |
| parameter defines the maximum size of the data that can be ever |
| provided at runtime. The application must be ready to provide the OCI |
| library runtime IN data buffers at any time and any number of times. |
| Runtime data is provided in one of the two ways: |
| callbacks using a user-defined function which must be registered |
| with a subsequent call to OCIBindDynamic(). |
| a polling mechanism using calls supplied by the OCI. This mode |
| is assumed if no callbacks are defined. |
| For more information about using the OCI_DATA_AT_EXEC mode, see |
| the section "Runtime Data Allocation and Piecewise Operations" on |
| page 5-16. |
| When the allocated buffers are not required any more, they should be |
| freed by the client. |
| Related Functions |
| OCIBindDynamic(), OCIBindObject(), OCIBindArrayOfStruct(), OCIAttrGet() |
| |
| |
| |
| -------------------------------OCIBindByPos----------------------------------- |
| |
| |
| OCIBindByPos() |
| Name |
| OCI Bind by Position |
| Purpose |
| Creates an association between a program variable and a placeholder in a SQL |
| statement or PL/SQL block. |
| Syntax |
| sword OCIBindByPos ( |
| OCIStmt *stmtp, |
| OCIBind **bindp, |
| OCIError *errhp, |
| ub4 position, |
| void *valuep, |
| sb4 value_sz, |
| ub2 dty, |
| void *indp, |
| ub2 *alenp, |
| ub2 *rcodep, |
| ub4 maxarr_len, |
| ub4 *curelep, |
| ub4 mode); |
| |
| Description |
| This call is used to perform a basic bind operation. The bind creates an |
| association between the address of a program variable and a placeholder in a |
| SQL statement or PL/SQL block. The bind call also specifies the type of data |
| which is being bound, and may also indicate the method by which data will be |
| provided at runtime. |
| This function also implicitly allocates the bind handle indicated by the bindp |
| parameter. |
| Data in an OCI application can be bound to placeholders statically or |
| dynamically. Binding is static when all the IN bind data and the OUT bind |
| buffers are well-defined just before the execute. Binding is dynamic when the |
| IN bind data and the OUT bind buffers are provided by the application on |
| demand at execute time to the client library. Dynamic binding is indicated by |
| setting the mode parameter of this call to OCI_DATA_AT_EXEC. |
| Related Functions: For more information about dynamic binding, see |
| the section "Runtime Data Allocation and Piecewise Operations" on |
| page 5-16 |
| Both OCIBindByName() and OCIBindByPos() take as a parameter a bind handle, |
| which is implicitly allocated by the bind call A separate bind handle is |
| allocated for each placeholder the application is binding. |
| Additional bind calls may be required to specify particular attributes |
| necessary when binding certain data types or handling input data in certain |
| ways: |
| If arrays of structures are being utilized, OCIBindArrayOfStruct() must |
| be called to set up the necessary skip parameters. |
| If data is being provided dynamically at runtime, and the application |
| will be using user-defined callback functions, OCIBindDynamic() must |
| be called to register the callbacks. |
| If a named data type is being bound, OCIBindObject() must be called to |
| specify additional necessary information. |
| Parameters |
| stmth (IN/OUT) - the statement handle to the SQL or PL/SQL statement |
| being processed. |
| bindp (IN/OUT) - a pointer to a pointer to a bind handle which is implicitly |
| allocated by this call. The bind handle maintains all the bind information |
| for this particular input value. The handle is feed implicitly when the |
| statement handle is deallocated. |
| errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for |
| diagnostic information in the event of an error. |
| position (IN) - the placeholder attributes are specified by position if |
| ocibindp() is being called. |
| valuep (IN/OUT) - a pointer to a data value or an array of data values of the |
| type specified in the dty parameter. An array of data values can be specified |
| for mapping into a PL/SQL table or for providing data for SQL multiple-row |
| operations. When an array of bind values is provided, this is called an array |
| bind in OCI terms. Additional attributes of the array bind (not bind to a |
| column of ARRAY type) are set up in OCIBindArrayOfStruct() call. |
| For a REF, named data type bind, the valuep parameter is used only for IN |
| bind data. The pointers to OUT buffers are set in the pgvpp parameter |
| initialized by OCIBindObject(). For named data type and REF binds, the bind |
| values are unpickled into the Object Cache. The OCI object navigational calls |
| can then be used to navigate the objects and the refs in the Object Cache. |
| If the OCI_DATA_AT_EXEC mode is specified in the mode parameter, valuep |
| is ignored for all data types. OCIBindArrayOfStruct() cannot be used and |
| OCIBindDynamic() must be invoked to provide callback functions if desired. |
| value_sz (IN) - the size of a data value. In the case of an array bind, this is |
| the maximum size of any element possible with the actual sizes being specified |
| in the alenp parameter. |
| If the OCI_DATA_AT_EXEC mode is specified, valuesz defines the maximum |
| size of the data that can be ever provided at runtime for data types other than |
| named data types or REFs. |
| dty (IN) - the data type of the value(s) being bound. Named data types |
| (SQLT_NTY) and REFs (SQLT_REF) are valid only if the application has been |
| initialized in object mode. For named data types, or REFs, additional calls |
| must be made with the bind handle to set up the datatype-specific attributes. |
| indp (IN/OUT) - pointer to an indicator variable or array. For scalar data |
| types, this is a pointer to sb2 or an array of sb2s. For named data types, |
| this pointer is ignored and the actual pointer to the indicator structure or |
| an array of indicator structures is initialized by OCIBindObject(). Ignored |
| for dynamic binds. |
| See the section "Indicator Variables" on page 2-43 for more information about |
| indicator variables. |
| alenp (IN/OUT) - pointer to array of actual lengths of array elements. Each |
| element in alenp is the length of the data in the corresponding element in the |
| bind value array before and after the execute. This parameter is ignored for |
| dynamic binds. |
| rcodep (OUT) - pointer to array of column level return codes. This parameter |
| is ignored for dynamic binds. |
| maxarr_len (IN) - the maximum possible number of elements of type dty in a |
| PL/SQL binds. This parameter is not required for non-PL/SQL binds. If |
| maxarr_len is non-zero, then either OCIBindDynamic() or |
| OCIBindArrayOfStruct() can be invoked to set up additional bind attributes. |
| curelep(IN/OUT) - a pointer to the actual number of elements. This parameter |
| is only required for PL/SQL binds. |
| mode (IN) - the valid modes for this parameter are: |
| OCI_DEFAULT. This is default mode. |
| OCI_DATA_AT_EXEC. When this mode is selected, the value_sz |
| parameter defines the maximum size of the data that can be ever |
| provided at runtime. The application must be ready to provide the OCI |
| library runtime IN data buffers at any time and any number of times. |
| Runtime data is provided in one of the two ways: |
| callbacks using a user-defined function which must be registered |
| with a subsequent call to OCIBindDynamic() . |
| a polling mechanism using calls supplied by the OCI. This mode |
| is assumed if no callbacks are defined. |
| For more information about using the OCI_DATA_AT_EXEC mode, see |
| the section "Runtime Data Allocation and Piecewise Operations" on |
| page 5-16. |
| When the allocated buffers are not required any more, they should be |
| freed by the client. |
| Related Functions |
| OCIBindDynamic(), OCIBindObject(), OCIBindArrayOfStruct(), OCIAttrGet() |
| |
| |
| |
| -------------------------------OCIBindDynamic--------------------------------- |
| |
| OCIBindDynamic() |
| Name |
| OCI Bind Dynamic Attributes |
| Purpose |
| This call is used to register user callbacks for dynamic data allocation. |
| Syntax |
| sword OCIBindDynamic( OCIBind *bindp, |
| OCIError *errhp, |
| void *ictxp, |
| OCICallbackInBind (icbfp)( |
| void *ictxp, |
| OCIBind *bindp, |
| ub4 iter, |
| ub4 index, |
| void **bufpp, |
| ub4 *alenp, |
| ub1 *piecep, |
| void **indp ), |
| void *octxp, |
| OCICallbackOutBind (ocbfp)( |
| void *octxp, |
| OCIBind *bindp, |
| ub4 iter, |
| ub4 index, |
| void **bufp, |
| ub4 **alenpp, |
| ub1 *piecep, |
| void **indpp, |
| ub2 **rcodepp) ); |
| Comments |
| This call is used to register user-defined callback functions for providing |
| data for an UPDATE or INSERT if OCI_DATA_AT_EXEC mode was specified in a |
| previous call to OCIBindByName() or OCIBindByPos(). |
| The callback function pointers must return OCI_CONTINUE if it the call is |
| successful. Any return code other than OCI_CONTINUE signals that the client |
| wishes to abort processing immediately. |
| For more information about the OCI_DATA_AT_EXEC mode, see the section |
| "Runtime Data Allocation and Piecewise Operations" on page 5-16. |
| Parameters |
| bindp (IN/OUT) - a bind handle returned by a call to OCIBindByName() or |
| OCIBindByPos(). |
| errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for |
| diagnostic information in the event of an error. |
| ictxp (IN) - the context pointer required by the call back function icbfp. |
| icbfp (IN) - the callback function which returns a pointer to the IN bind |
| value or piece at run time. The callback takes in the following parameters. |
| ictxp (IN/OUT) - the context pointer for this callback function. |
| bindp (IN) - the bind handle passed in to uniquely identify this bind |
| variable. |
| iter (IN) - 1-based execute iteration value. |
| index (IN) - index of the current array, for an array bind. 1 based not |
| greater than curele parameter of the bind call. |
| index (IN) - index of the current array, for an array bind. This parameter |
| is 1-based, and may not be greater than curele parameter of the bind call. |
| bufpp (OUT) - the pointer to the buffer. |
| piecep (OUT) - which piece of the bind value. This can be one of the |
| following values - OCI_ONE_PIECE, OCI_FIRST_PIECE, |
| OCI_NEXT_PIECE and OCI_LAST_PIECE. |
| indp (OUT) - contains the indicator value. This is apointer to either an |
| sb2 value or a pointer to an indicator structure for binding named data |
| types. |
| indszp (OUT) - contains the indicator value size. A pointer containing |
| the size of either an sb2 or an indicator structure pointer. |
| octxp (IN) - the context pointer required by the callback function ocbfp. |
| ocbfp (IN) - the callback function which returns a pointer to the OUT bind |
| value or piece at run time. The callback takes in the following parameters. |
| octxp (IN/OUT) - the context pointer for this call back function. |
| bindp (IN) - the bind handle passed in to uniquely identify this bind |
| variable. |
| iter (IN) - 1-based execute iteration value. |
| index (IN) - index of the current array, for an array bind. This parameter |
| is 1-based, and must not be greater than curele parameter of the bind call. |
| bufpp (OUT) - a pointer to a buffer to write the bind value/piece. |
| buflp (OUT) - returns the buffer size. |
| alenpp (OUT) - a pointer to a storage for OCI to fill in the size of the bind |
| value/piece after it has been read. |
| piecep (IN/OUT) - which piece of the bind value. It will be set by the |
| library to be one of the following values - OCI_ONE_PIECE or |
| OCI_NEXT_PIECE. The callback function can leave it unchanged or set |
| it to OCI_FIRST_PIECE or OCI_LAST_PIECE. By default - |
| OCI_ONE_PIECE. |
| indpp (OUT) - returns a pointer to contain the indicator value which |
| either an sb2 value or a pointer to an indicator structure for named data |
| types. |
| indszpp (OUT) - returns a pointer to return the size of the indicator |
| value which is either size of an sb2 or size of an indicator structure. |
| rcodepp (OUT) - returns a pointer to contains the return code. |
| Related Functions |
| OCIAttrGet() |
| |
| |
| ---------------------------------OCIBindObject-------------------------------- |
| |
| |
| OCIBindObject() |
| Name |
| OCI Bind Object |
| Purpose |
| This function sets up additional attributes which are required for a named |
| data type (object) bind. |
| Syntax |
| sword OCIBindObject ( OCIBind *bindp, |
| OCIError *errhp, |
| const OCIType *type, |
| void **pgvpp, |
| ub4 *pvszsp, |
| void **indpp, |
| ub4 *indszp, ); |
| Comments |
| This function sets up additional attributes which binding a named data type |
| or a REF. An error will be returned if this function is called when the OCI |
| environment has been initialized in non-object mode. |
| This call takes as a paramter a type descriptor object (TDO) of datatype |
| OCIType for the named data type being defined. The TDO can be retrieved |
| with a call to OCITypeByName(). |
| If the OCI_DATA_AT_EXEC mode was specified in ocibindn() or ocibindp(), the |
| pointers to the IN buffers are obtained either using the callback icbfp |
| registered in the OCIBindDynamic() call or by the OCIStmtSetPieceInfo() call. |
| The buffers are dynamically allocated for the OUT data and the pointers to |
| these buffers are returned either by calling ocbfp() registered by the |
| OCIBindDynamic() or by setting the pointer to the buffer in the buffer passed |
| in by OCIStmtSetPieceInfo() called when OCIStmtExecute() returned |
| OCI_NEED_DATA. The memory of these client library- allocated buffers must be |
| freed when not in use anymore by using the OCIObjectFreee() call. |
| Parameters |
| bindp ( IN/OUT) - the bind handle returned by the call to OCIBindByName() |
| or OCIBindByPos(). |
| errhp ( IN/OUT) - an error handle which can be passed to OCIErrorGet() for |
| diagnostic information in the event of an error. |
| type ( IN) - points to the TDO which describes the type of the program |
| variable being bound. Retrieved by calling OCITypeByName(). |
| pgvpp ( IN/OUT) - points to a pointer to the program variable buffer. For an |
| array, pgvpp points to an array of pointers. When the bind variable is also an |
| OUT variable, the OUT Named Data Type value or REF is allocated |
| (unpickled) in the Object Cache, and a pointer to the value or REF is returned, |
| At the end of execute, when all OUT values have been received, pgvpp points |
| to an array of pointer(s) to these newly allocated named data types in the |
| object cache. |
| pgvpp is ignored if the OCI_DATA_AT_EXEC mode is set. Then the Named |
| Data Type buffers are requested at runtime. For static array binds, skip |
| factors may be specified using the OCIBindArrayOfStruct() call. The skip |
| factors are used to compute the address of the next pointer to the value, the |
| indicator structure and their sizes. |
| pvszsp ( IN/OUT) - points to the size of the program variable. The size of the |
| named data type is not required on input. For an array, pvszsp is an array of |
| ub4s. On return, for OUT bind variables, this points to size(s) of the Named |
| Data Types and REFs received. pvszsp is ignored if the OCI_DATA_AT_EXEC |
| mode is set. Then the size of the buffer is taken at runtime. |
| indpp ( IN/OUT) - points to a pointer to the program variable buffer |
| containing the parallel indicator structure. For an array, points to an array |
| of pointers. When the bind variable is also an OUT bind variable, memory is |
| allocated in the object cache, to store the unpickled OUT indicator values. At |
| the end of the execute when all OUT values have been received, indpp points |
| to the pointer(s) to these newly allocated indicator structure(s). |
| indpp is ignored if the OCI_DATA_AT_EXEC mode is set. Then the indicator |
| is requested at runtime. |
| indszp ( IN/OUT) - points to the size of the IN indicator structure program |
| variable. For an array, it is an array of sb2s. On return for OUT bind |
| variables, this points to size(s) of the received OUT indicator structures. |
| indszp is ignored if the OCI_DATA_AT_EXEC mode is set. Then the indicator |
| size is requested at runtime. |
| Related Functions |
| OCIAttrGet() |
| |
| |
| |
| ----------------------------------OCIBreak------------------------------------ |
| |
| |
| OCIBreak() |
| Name |
| OCI Break |
| Purpose |
| This call performs an immediate (asynchronous) abort of any currently |
| executing OCI function that is associated with a server . |
| Syntax |
| sword OCIBreak ( void *hndlp, |
| OCIError *errhp); |
| Comments |
| This call performs an immediate (asynchronous) abort of any currently |
| executing OCI function that is associated with a server. It is normally used |
| to stop a long-running OCI call being processed on the server. |
| This call can take either the service context handle or the server context |
| handle as a parameter to identify the function to be aborted. |
| Parameters |
| hndlp (IN) - the service context handle or the server context handle. |
| errhp (IN) - an error handle which can be passed to OCIErrorGet() for |
| diagnostic information in the event of an error. |
| Related Functions |
| |
| -----------------------------OCIConnectionPoolCreate -------------------------- |
| Name: |
| OCIConnectionPoolCreate |
| |
| Purpose: |
| Creates the connections in the pool |
| |
| Syntax: |
| OCIConnectionPoolCreate (OCIEnv *envhp, OCIError *errhp, OCICPool *poolhp, |
| OraText **poolName, sb4 *poolNameLen, |
| const Oratext *dblink, sb4 dblinkLen, |
| ub4 connMin, ub4 connMax, ub4 connIncr, |
| const OraText *poolUsername, sb4 poolUserLen, |
| const OraText *poolPassword, sb4 poolPassLen, |
| ub4 mode) |
| Comments: |
| This call is used to create a connection pool. conn_min connections |
| to the database are started on calling OCIConnectionPoolCreate. |
| |
| Parameters: |
| envhp (IN/OUT) - A pointer to the environment where the Conencton Pool |
| is to be created |
| errhp (IN/OUT) - An error handle which can be passed to OCIErrorGet(). |
| poolhp (IN/OUT) - An uninitialiazed pool handle. |
| poolName (OUT) - The connection pool name. |
| poolNameLen (OUT) - The length of the connection pool name |
| dblink (IN/OUT) - Specifies the database(server) to connect. This will also |
| be used as the default pool name. |
| dblinkLen (IN) - The length of the string pointed to by dblink. |
| connMin (IN) - Specifies the minimum number of connections in the |
| Connection Pool at any instant. |
| connMin number of connections are started when |
| OCIConnectionPoolCreate() is called. |
| connMax (IN) - Specifies the maximum number of connections that can be |
| opened to the database. Once this value is reached, no |
| more connections are opened. |
| connIncr (IN) - Allows application to set the next increment for |
| connections to be opened to the database if the current |
| number of connections are less than conn_max. |
| poolUsername (IN/OUT) - Connection pooling requires an implicit proxy |
| session and this attribute provides a username |
| for that session. |
| poolUserLen (IN) - This represents the length of pool_username. |
| poolPassword (IN/OUT) - The password for the parameter pool_username passed |
| above. |
| poolPassLen (IN) - This represents the length of pool_password. |
| |
| mode (IN) - The modes supported are OCI_DEFAULT and |
| OCI_CPOOL_REINITIALIZE |
| |
| Related Functions |
| OCIConnectionPoolDestroy() |
| |
| --------------------------------------------------------------------------- |
| |
| ----------------------------OCIConnectionPoolDestroy------------------------- |
| Name: |
| OCIConnectionPoolDestroy |
| |
| Purpose: |
| Terminates the connections in the pool |
| |
| Syntax: |
| OCIConnectionPoolDestroy (OCICPool *poolhp, OCIError *errhp, ub4 mode) |
| |
| Comments: |
| On calling OCIConnectionPoolDestroy, all the open connections in the pool |
| are closed and the pool is destroyed. |
| |
| Parameters: |
| poolhp (IN/OUT) - An initialiazed pool handle. |
| errhp (IN/OUT) - An error handle which can be passed to OCIErrorGet(). |
| mode (IN) - Currently, OCIConnectionPoolDestroy() will support only |
| the OCI_DEFAULT mode. |
| |
| Related Functions: |
| OCIConnectionPoolCreate() |
| |
| ----------------------------------------------------------------------------- |
| ----------------------------OCISessionPoolCreate----------------------------- |
| Name: |
| OCISessionPoolCreate |
| |
| Purpose: |
| Creates the sessions in the session pool. |
| |
| Syntax: |
| sword OCISessionPoolCreate (OCIEnv *envhp, OCIError *errhp, OCISpool *spoolhp, |
| OraText **poolName, ub4 *poolNameLen, |
| const OraText *connStr, ub4 connStrLen, |
| ub4 sessMin, ub4 sessMax, ub4 sessIncr, |
| OraText *userid, ub4 useridLen, |
| OraText *password, ub4 passwordLen, |
| ub4 mode) |
| |
| Comments: |
| When OCISessionPoolCreate is called, a session pool is initialized for |
| the associated environment and the database specified by the |
| connStr parameter. This pool is named uniquely and the name |
| is returned to the user in the poolname parameter. |
| |
| Parameters: |
| envhp (IN/OUT) - A pointer to the environment handle in which the session |
| pool needs to be created. |
| errhp (IN/OUT) - An error handle which can be passed to OCIErrorGet(). |
| spoolhp (IN/OUT) - A pointer to the session pool handle that is created. |
| poolName (OUT) - Session pool name returned to the user. |
| poolNameLen (OUT) - Length of the PoolName |
| connStr (IN) - The TNS alias of the database to connect to. |
| connStrLen (IN) - Length of the connStr. |
| sessMin (IN) - Specifies the minimum number of sessions in the Session Pool. |
| These are the number of sessions opened in the beginning, if |
| in Homogeneous mode. Else, the parameter is ignored. |
| sessMax (IN) - Specifies the maximum number of sessions in the Session Pool. |
| Once this value is reached, no more sessions are opened, |
| unless the OCI_ATTR_SPOOL_FORCEGET is set. |
| userid (IN) - Specifies the userid with which to start up the sessions. |
| useridLen (IN) - Length of userid. |
| password (IN) - Specifies the password for the corresponding userid. |
| passwordLen (IN) - Specifies the length of the password |
| mode(IN) - May be OCI_DEFAULT, OCI_SPC_SPOOL_REINITIALIZE, or |
| OCI_SPC_SPOOL_HOMOGENEOUS. |
| |
| Returns: |
| SUCCESS - If pool could be allocated and created successfully. |
| ERROR - If above conditions could not be met. |
| |
| Related Functions: |
| OCISessionPoolDestroy() |
| ----------------------------------------------------------------------------- |
| -----------------------------OCISessionPoolDestroy--------------------------- |
| Name: |
| OCISessionPoolDestroy |
| |
| Purpose: |
| Terminates all the sessions in the session pool. |
| |
| Syntax: |
| sword OCISessionPoolDestroy (OCISPool *spoolhp, OCIError *errhp, ub4 mode) |
| |
| Comments: |
| spoolhp (IN/OUT) - The pool handle of the session pool to be destroyed. |
| errhp (IN/OUT) - An error handle which can be passed to OCIErrorGet(). |
| mode (IN) - Currently only OCI_DEFAULT mode is supported. |
| |
| Returns: |
| SUCCESS - All the sessions could be closed. |
| ERROR - If the above condition is not met. |
| |
| Related Functions: |
| OCISessionPoolCreate() |
| ----------------------------------------------------------------------------- |
| -------------------------------OCISessionGet--------------------------------- |
| Name: |
| OCISessionGet |
| |
| Purpose: |
| Get a session. This could be from a session pool, connection pool or |
| a new standalone session. |
| |
| Syntax: |
| sword OCISessionGet(OCIenv *envhp, OCIError *errhp, OCISvcCtx **svchp, |
| OCIAuthInfo *authhp, |
| OraText *poolName, ub4 poolName_len, |
| const OraText *tagInfo, ub4 tagInfo_len, |
| OraText **retTagInfo, ub4 *retTagInfo_len, |
| boolean *found, |
| ub4 mode) |
| |
| Comments: |
| envhp (IN/OUT) - OCI environment handle. |
| errhp (IN/OUT) - OCI error handle to be passed to OCIErrorGet(). |
| svchp (IN/OUT) - Address of an OCI service context pointer. This will be |
| filled with a server and session handle, attached to the |
| pool. |
| authhp (IN/OUT) - OCI Authentication Information handle. |
| poolName (IN) - This indicates the session/connection pool to get the |
| session/connection from in the OCI_SPOOL/OCI_CPOOL mode. |
| In the OCI_DEFAULT mode it refers to the connect string. |
| poolName_len (IN) - length of poolName. |
| tagInfo (IN) - indicates the tag of the session that the user wants. If the |
| user wants a default session, he must specify a NULL here. |
| Only used for Session Pooling. |
| tagInfo_len (IN) - the length of tagInfo. |
| retTagInfo (OUT) - This indicates the type of session that is returned to |
| the user. Only used for Session Pooling. |
| retTagInfo_len (OUT) - the length of retTagInfo. |
| found (OUT) - set to true if the user gets a session he had requested, else |
| set to false. Only used for Session Pooling. |
| mode (IN) - The supported modes are OCI_DEFAULT, OCI_CRED_PROXY and |
| OCI_GET_SPOOL_MATCHANY, OCI_SPOOL and OCI_CPOOL. OCI_SPOOL and |
| OCI_CPOOL are mutually exclusive. |
| |
| Returns: |
| SUCCESS - if a session was successfully returned into svchp. |
| SUCCESS_WITH_INFO - if a session was successfully returned into svchp and the |
| total number of sessions > maxsessions. Only valid for |
| Session Pooling. |
| ERROR - If a session could not be retrieved. |
| |
| Related Functions: |
| OCISessionRelease() |
| ----------------------------------------------------------------------------- |
| ---------------------------OCISessionRelease--------------------------------- |
| Name: |
| OCISessionRelease |
| |
| Purpose: |
| Release the session. |
| |
| Syntax: |
| sword OCISessionRelease ( OCISvcCtx *svchp, OCIError *errhp, |
| OraText *tag, ub4 tag_len, |
| ub4 mode); |
| |
| Comments: |
| svchp (IN/OUT) - The service context associated with the session/connection. |
| errhp (IN/OUT) - OCI error handle to be passed to OCIErrorGet(). |
| tag (IN) - Only used for Session Pooling. |
| This parameter will be ignored unless mode OCI_RLS_SPOOL_RETAG is |
| specified. In this case, the session is labelled with this tag and |
| returned to the pool. If this is NULL, then the session is untagged. |
| tag_len (IN) - Length of the tag. This is ignored unless mode |
| OCI_RLS_SPOOL_RETAG is set. |
| mode (IN) - The supported modes are OCI_DEFAULT, OCI_RLS_SPOOL_DROPSESS, |
| OCI_RLS_SPOOL_RETAG. The last 2 are only valid for Session Pooling. |
| When OCI_RLS_SPOOL_DROPSESS is specified, the session |
| will be removed from the session pool. If OCI_RLS_SPOOL_RETAG |
| is set, the tag on the session will be altered. If this mode is |
| not set, the tag and tag_len parameters will be ignored. |
| |
| Returns: |
| ERROR - If the session could not be released successfully. |
| SUCCESS - In all other cases. |
| |
| Related Functions: |
| OCISessionGet(). |
| ----------------------------------------------------------------------------- |
| ------------------------------OCIDateTimeAssign -------------------------- |
| sword OCIDateTimeAssign(void *hndl, OCIError *err, const OCIDateTime *from, |
| OCIDateTime *to); |
| NAME: OCIDateTimeAssign - OCIDateTime Assignment |
| PARAMETERS: |
| hndl (IN) - Session/Env handle. |
| err (IN/OUT) - error handle. If there is an error, it is |
| recorded in 'err' and this function returns OCI_ERROR. |
| The error recorded in 'err' can be retrieved by calling |
| OCIErrorGet(). |
| from (IN) - datetime to be assigned |
| to (OUT) - lhs of assignment |
| DESCRIPTION: |
| Performs date assignment. The type of the output will be same as that |
| of input |
| |
| ------------------------------OCIDateTimeCheck---------------------------- |
| sword OCIDateTimeCheck(void *hndl, OCIError *err, const OCIDateTime *date, |
| ub4 *valid ); |
| NAME: OCIDateTimeCheck - OCIDateTime CHecK if the given date is valid |
| PARAMETERS: |
| hndl (IN) - Session/Env handle. |
| err (IN/OUT) - error handle. If there is an error, it is |
| recorded in 'err' and this function returns OCI_ERROR. |
| The error recorded in 'err' can be retrieved by calling |
| OCIErrorGet(). |
| date (IN) - date to be checked |
| valid (OUT) - returns zero for a valid date, otherwise |
| the ORed combination of all error bits specified below: |
| Macro name Bit number Error |
| ---------- ---------- ----- |
| OCI_DATE_INVALID_DAY 0x1 Bad day |
| OCI_DATE_DAY_BELOW_VALID 0x2 Bad DAy Low/high bit (1=low) |
| OCI_DATE_INVALID_MONTH 0x4 Bad MOnth |
| OCI_DATE_MONTH_BELOW_VALID 0x8 Bad MOnth Low/high bit (1=low) |
| OCI_DATE_INVALID_YEAR 0x10 Bad YeaR |
| OCI_DATE_YEAR_BELOW_VALID 0x20 Bad YeaR Low/high bit (1=low) |
| OCI_DATE_INVALID_HOUR 0x40 Bad HouR |
| OCI_DATE_HOUR_BELOW_VALID 0x80 Bad HouR Low/high bit (1=low) |
| OCI_DATE_INVALID_MINUTE 0x100 Bad MiNute |
| OCI_DATE_MINUTE_BELOW_VALID 0x200 Bad MiNute Low/high bit (1=low) |
| OCI_DATE_INVALID_SECOND 0x400 Bad SeCond |
| OCI_DATE_SECOND_BELOW_VALID 0x800 bad second Low/high bit (1=low) |
| OCI_DATE_DAY_MISSING_FROM_1582 0x1000 Day is one of those "missing" |
| from 1582 |
| OCI_DATE_YEAR_ZERO 0x2000 Year may not equal zero |
| OCI_DATE_INVALID_TIMEZONE 0x4000 Bad Timezone |
| OCI_DATE_INVALID_FORMAT 0x8000 Bad date format input |
| |
| So, for example, if the date passed in was 2/0/1990 25:61:10 in |
| (month/day/year hours:minutes:seconds format), the error returned |
| would be OCI_DATE_INVALID_DAY | OCI_DATE_DAY_BELOW_VALID | |
| OCI_DATE_INVALID_HOUR | OCI_DATE_INVALID_MINUTE |
| |
| DESCRIPTION: |
| Check if the given date is valid. |
| RETURNS: |
| OCI_SUCCESS if the function completes successfully. |
| OCI_INVALID_HANDLE if 'err' is NULL. |
| OCI_ERROR if |
| 'date' and 'valid' pointers are NULL pointers |
| |
| ------------------------------- OCIDateTimeCompare---------------------------- |
| sword OCIDateTimeCompare(void *hndl, OCIError *err, const OCIDateTime *date1, |
| const OCIDateTime *date2, sword *result ); |
| NAME: OCIDateTimeCompare - OCIDateTime CoMPare dates |
| PARAMETERS: |
| hndl (IN) - Session/Env handle. |
| err (IN/OUT) - error handle. If there is an error, it is |
| recorded in 'err' and this function returns OCI_ERROR. |
| The error recorded in 'err' can be retrieved by calling |
| OCIErrorGet(). |
| date1, date2 (IN) - dates to be compared |
| result (OUT) - comparison result, 0 if equal, -1 if date1 < date2, |
| 1 if date1 > date2 |
| DESCRIPTION: |
| The function OCIDateCompare compares two dates. It returns -1 if |
| date1 is smaller than date2, 0 if they are equal, and 1 if date1 is |
| greater than date2. |
| RETURNS: |
| OCI_SUCCESS if the function completes successfully. |
| OCI_INVALID_HANDLE if 'err' is NULL. |
| OCI_ERROR if |
| invalid date |
| input dates are not mutually comparable |
| |
| ------------------------------OCIDateTimeConvert---------------------- |
| sword OCIDateTimeConvert(void *hndl, OCIError *err, OCIDateTime *indate, |
| OCIDateTime *outdate); |
| NAME: OCIDateTimeConvert - Conversion between different DATETIME types |
| PARAMETERS: |
| hndl (IN) - Session/Env handle. |
| err (IN/OUT) - error handle. If there is an error, it is |
| recorded in 'err' and this function returns OCI_ERROR. |
| The error recorded in 'err' can be retrieved by calling |
| OCIErrorGet(). |
| indate (IN) - pointer to input date |
| outdate (OUT) - pointer to output datetime |
| DESCRIPTION: Converts one datetime type to another. The result type is |
| the type of the 'outdate' descriptor. |
| RETURNS: |
| OCI_SUCCESS if the function completes successfully. |
| OCI_INVALID_HANDLE if 'err' is NULL. |
| OCI_ERROR if |
| conversion not possible. |
| |
| ---------------------------- OCIDateTimeFromText----------------------- |
| sword OCIDateTimeFromText(void *hndl, OCIError *err, const OraText *date_str, |
| size_t d_str_length, const OraText *fmt, ub1 fmt_length, |
| const OraText *lang_name, size_t lang_length, OCIDateTime *date ); |
| NAME: OCIDateTimeFromText - OCIDateTime convert String FROM Date |
| PARAMETERS: |
| hndl (IN) - Session/Env handle. If Session Handle is passed, the |
| conversion takes place in session NLS_LANGUAGE and |
| session NLS_CALENDAR, otherwise the default is used. |
| err (IN/OUT) - error handle. If there is an error, it is |
| recorded in 'err' and this function returns OCI_ERROR. |
| The error recorded in 'err' can be retrieved by calling |
| OCIErrorGet(). |
| date_str (IN) - input string to be converted to Oracle date |
| d_str_length (IN) - size of the input string, if the length is -1 |
| then 'date_str' is treated as a null terminated string |
| fmt (IN) - conversion format; if 'fmt' is a null pointer, then |
| the string is expected to be in the default format for |
| the datetime type. |
| fmt_length (IN) - length of the 'fmt' parameter |
| lang_name (IN) - language in which the names and abbreviations of |
| days and months are specified, if null i.e. (OraText *)0, |
| the default language of session is used, |
| lang_length (IN) - length of the 'lang_name' parameter |
| date (OUT) - given string converted to date |
| DESCRIPTION: |
| Converts the given string to Oracle datetime type set in the |
| OCIDateTime descriptor according to the specified format. Refer to |
| "TO_DATE" conversion function described in "Oracle SQL Language |
| Reference Manual" for a description of format. |
| RETURNS: |
| OCI_SUCCESS if the function completes successfully. |
| OCI_INVALID_HANDLE if 'err' is NULL. |
| OCI_ERROR if |
| invalid format |
| unknown language |
| invalid input string |
| |
| --------------------------- OCIDateTimeGetDate------------------------- |
| sword OCIDateTimeGetDate(void *hndl, OCIError *err, const OCIDateTime *date, |
| sb2 *year, ub1 *month, ub1 *day ); |
| NAME: OCIDateTimeGetDate - OCIDateTime Get Date (year, month, day) |
| portion of DATETIME. |
| PARAMETERS: |
| hndl (IN) - Session/Env handle. |
| err (IN/OUT) - error handle. If there is an error, it is |
| recorded in 'err' and this function returns OCI_ERROR. |
| The error recorded in 'err' can be retrieved by calling |
| OCIErrorGet(). |
| datetime (IN) - Pointer to OCIDateTime |
| year (OUT) - year value |
| month (OUT) - month value |
| day (OUT) - day value |
| |
| --------------------------- OCIDateTimeGetTime ------------------------ |
| sword OCIDateTimeGetTime(void *hndl, OCIError *err, OCIDateTime *datetime, |
| ub1 *hour, ub1 *minute, ub1 *sec, ub4 *fsec); |
| NAME: OCIDateTimeGetTime - OCIDateTime Get Time (hour, min, second, |
| fractional second) of DATETIME. |
| PARAMETERS: |
| hndl (IN) - Session/Env handle. |
| err (IN/OUT) - error handle. If there is an error, it is |
| recorded in 'err' and this function returns OCI_ERROR. |
| The error recorded in 'err' can be retrieved by calling |
| OCIErrorGet(). |
| datetime (IN) - Pointer to OCIDateTime |
| hour (OUT) - hour value |
| minute (OUT) - minute value |
| sec (OUT) - second value |
| fsec (OUT) - Fractional Second value |
| |
| --------------------------- OCIDateTimeGetTimeZoneOffset ---------------------- |
| sword OCIDateTimeGetTimeZoneOffset(void *hndl,OCIError *err,const |
| OCIDateTime *datetime,sb1 *hour,sb1 *minute); |
| |
| NAME: OCIDateTimeGetTimeZoneOffset - OCIDateTime Get TimeZone (hour, minute) |
| portion of DATETIME. |
| PARAMETERS: |
| hndl (IN) - Session/Env handle. |
| err (IN/OUT) - error handle. If there is an error, it is |
| recorded in 'err' and this function returns OCI_ERROR. |
| The error recorded in 'err' can be retrieved by calling |
| OCIErrorGet(). |
| datetime (IN) - Pointer to OCIDateTime |
| hour (OUT) - TimeZone Hour value |
| minute (OUT) - TimeZone Minute value |
| |
| --------------------------- OCIDateTimeSysTimeStamp--------------------- |
| sword OCIDateTimeSysTimeStamp(void *hndl, OCIError *err, |
| OCIDateTime *sys_date ); |
| |
| NAME: OCIDateTimeSysTimeStamp - Returns system date/time as a TimeStamp with |
| timezone |
| PARAMETERS: |
| hndl (IN) - Session/Env handle. |
| err (IN/OUT) - error handle. If there is an error, it is |
| recorded in 'err' and this function returns OCI_ERROR. |
| The error recorded in 'err' can be retrieved by calling |
| OCIErrorGet(). |
| sys_date (OUT) - Pointer to output timestamp |
| |
| DESCRIPTION: |
| Gets the system current date and time as a timestamp with timezone |
| RETURNS: |
| OCI_SUCCESS if the function completes successfully. |
| OCI_INVALID_HANDLE if 'err' is NULL. |
| |
| |
| ------------------------------OCIDateTimeIntervalAdd---------------------- |
| sword OCIDateTimeIntervalAdd(void *hndl, OCIError *err, OCIDateTime *datetime, |
| OCIInterval *inter, OCIDateTime *outdatetime); |
| NAME: OCIDateTimeIntervalAdd - Adds an interval to datetime |
| PARAMETERS: |
| hndl (IN) - Session/Env handle. |
| err (IN/OUT) - error handle. If there is an error, it is |
| recorded in 'err' and this function returns OCI_ERROR. |
| The error recorded in 'err' can be retrieved by calling |
| OCIErrorGet(). |
| datetime (IN) - pointer to input datetime |
| inter (IN) - pointer to interval |
| outdatetime (IN) - pointer to output datetime. The output datetime |
| will be of same type as input datetime |
| DESCRIPTION: |
| Adds an interval to a datetime to produce a resulting datetime |
| RETURNS: |
| OCI_SUCCESS if the function completes successfully. |
| OCI_INVALID_HANDLE if 'err' is NULL. |
| OCI_ERROR if: |
| resulting date is before Jan 1, -4713 |
| resulting date is after Dec 31, 9999 |
| |
| ------------------------------OCIDateTimeIntervalSub---------------------- |
| sword OCIDateTimeIntervalSub(void *hndl, OCIError *err, OCIDateTime *datetime, |
| OCIInterval *inter, OCIDateTime *outdatetime); |
| NAME: OCIDateTimeIntervalSub - Subtracts an interval from a datetime |
| PARAMETERS: |
| hndl (IN) - Session/Env handle. |
| err (IN/OUT) - error handle. If there is an error, it is |
| recorded in 'err' and this function returns OCI_ERROR. |
| The error recorded in 'err' can be retrieved by calling |
| OCIErrorGet(). |
| datetime (IN) - pointer to input datetime |
| inter (IN) - pointer to interval |
| outdatetime (IN) - pointer to output datetime. The output datetime |
| will be of same type as input datetime |
| DESCRIPTION: |
| Subtracts an interval from a datetime and stores the result in a |
| datetime |
| RETURNS: |
| OCI_SUCCESS if the function completes successfully. |
| OCI_INVALID_HANDLE if 'err' is NULL. |
| OCI_ERROR if: |
| resulting date is before Jan 1, -4713 |
| resulting date is after Dec 31, 9999 |
| |
| --------------------------- OCIDateTimeConstruct------------------------- |
| sword OCIDateTimeConstruct(void *hndl,OCIError *err,OCIDateTime *datetime, |
| sb2 year,ub1 month,ub1 day,ub1 hour,ub1 min,ub1 sec,ub4 fsec, |
| OraText *timezone,size_t timezone_length); |
| |
| NAME: OCIDateTimeConstruct - Construct an OCIDateTime. Only the relevant |
| fields for the OCIDateTime descriptor types are used. |
| PARAMETERS: |
| hndl (IN) - Session/Env handle. |
| err (IN/OUT) - error handle. If there is an error, it is |
| recorded in 'err' and this function returns OCI_ERROR. |
| The error recorded in 'err' can be retrieved by calling |
| OCIErrorGet(). |
| datetime (IN) - Pointer to OCIDateTime |
| year (IN) - year value |
| month (IN) - month value |
| day (IN) - day value |
| hour (IN) - hour value |
| min (IN) - minute value |
| sec (IN) - second value |
| fsec (IN) - Fractional Second value |
| timezone (IN) - Timezone string |
| timezone_length(IN) - Length of timezone string |
| |
| DESCRIPTION: |
| Constructs a DateTime descriptor. The type of the datetime is the |
| type of the OCIDateTime descriptor. Only the relevant fields based |
| on the type are used. For Types with timezone, the date and time |
| fields are assumed to be in the local time of the specified timezone. |
| If timezone is not specified, then session default timezone is |
| assumed. |
| RETURNS: |
| OCI_SUCCESS if the function completes successfully. |
| OCI_ERROR if datetime is not valid. |
| |
| ------------------------------OCIDateTimeSubtract----------------------- |
| sword OCIDateTimeSubtract(void *hndl, OCIError *err, OCIDateTime *indate1, |
| OCIDateTime *indate2, OCIInterval *inter); |
| NAME: OCIDateTimeSubtract - subtracts two datetimes to return an interval |
| PARAMETERS: |
| hndl (IN) - Session/Env handle. |
| err (IN/OUT) - error handle. If there is an error, it is |
| recorded in 'err' and this function returns OCI_ERROR. |
| The error recorded in 'err' can be retrieved by calling |
| OCIErrorGet(). |
| indate1(IN) - pointer to subtrahend |
| indate2(IN) - pointer to minuend |
| inter (OUT) - pointer to output interval |
| DESCRIPTION: |
| Takes two datetimes as input and stores their difference in an |
| interval. The type of the interval is the type of the 'inter' |
| descriptor. |
| RETURNS: |
| OCI_SUCCESS if the function completes successfully. |
| OCI_INVALID_HANDLE if 'err' is NULL. |
| OCI_ERROR if |
| datetimes are not comparable. |
| |
| --------------------------- OCIDateTimeToText-------------------------- |
| sword OCIDateTimeToText(void *hndl, OCIError *err, const OCIDateTime *date, |
| const OraText *fmt, ub1 fmt_length, ub1 fsprec, |
| const OraText *lang_name, size_t lang_length, |
| ub4 *buf_size, OraText *buf ); |
| NAME: OCIDateTimeToText - OCIDateTime convert date TO String |
| PARAMETERS: |
| hndl (IN) - Session/Env handle. If Session Handle is passed, the |
| conversion takes place in session NLS_LANGUAGE and |
| session NLS_CALENDAR, otherwise the default is used. |
| err (IN/OUT) - error handle. If there is an error, it is |
| recorded in 'err' and this function returns OCI_ERROR. |
| The error recorded in 'err' can be retrieved by calling |
| OCIErrorGet(). |
| date (IN) - Oracle datetime to be converted |
| fmt (IN) - conversion format, if null string pointer (OraText*)0, then |
| the date is converted to a character string in the |
| default format for that type. |
| fmt_length (IN) - length of the 'fmt' parameter |
| fsprec (IN) - specifies the fractional second precision in which the |
| fractional seconds is returned. |
| lang_name (IN) - specifies the language in which the names and |
| abbreviations of months and days are returned; |
| default language of session is used if 'lang_name' |
| is null i.e. (OraText *)0 |
| lang_length (IN) - length of the 'nls_params' parameter |
| buf_size (IN/OUT) - size of the buffer; size of the resulting string |
| is returned via this parameter |
| buf (OUT) - buffer into which the converted string is placed |
| DESCRIPTION: |
| Converts the given date to a string according to the specified format. |
| Refer to "TO_DATE" conversion function described in |
| "Oracle SQL Language Reference Manual" for a description of format |
| and NLS arguments. The converted null-terminated date string is |
| stored in the buffer 'buf'. |
| RETURNS: |
| OCI_SUCCESS if the function completes successfully. |
| OCI_INVALID_HANDLE if 'err' is NULL. |
| OCI_ERROR if |
| buffer too small |
| invalid format |
| unknown language |
| overflow error |
| |
| ----------------------------OCIDateTimeGetTimeZoneName------------------------ |
| sword OCIDateTimeGetTimeZoneName(void *hndl, |
| OCIError *err, |
| const OCIDateTime *datetime, |
| ub1 *buf, |
| ub4 *buflen); |
| NAME OCIDateTimeGetTimeZoneName - OCI DateTime Get the Time Zone Name |
| PARAMETERS: |
| hndl (IN) - Session/Env handle. |
| err (IN/OUT) - error handle. If there is an error, it is |
| recorded in 'err' and this function returns OCI_ERROR. |
| The error recorded in 'err' can be retrieved by calling |
| OCIErrorGet(). |
| datetime (IN) - Pointer to an OCIDateTime. |
| buf (OUT) - User allocated storage for name string. |
| buflen (IN/OUT) - length of buf on input, length of name on out |
| DESCRIPTION: |
| Returns either the timezone region name or the absolute hour and minute |
| offset. If the DateTime was created with a region id then the region |
| name will be returned in the buf. If the region id is zero, then the |
| hour and minute offset is returned as "[-]HH:MM". |
| RETURNS: |
| OCI_SUCCESS if the function completes successfully. |
| OCI_INVALID_HANDLE if 'err' is NULL. |
| OCI_ERROR if |
| buffer too small |
| error retrieving timezone data |
| invalid region |
| invalid LdiDateTime type |
| |
| ---------------------------------OCIDateTimeToArray---------------------------- |
| sword OCIDateTimeToArray(void *hndl, |
| OCIError *err, |
| const OCIDateTime *datetime, |
| const OCIInterval *reftz, |
| ub1 *outarray, |
| ub4 *len |
| ub1 *fsprec); |
| NAME OCIDateTimeToArray - OCI DateTime convert To Array format |
| PARAMETERS: |
| hndl (IN) - Session/Env handle. |
| err (IN/OUT) - error handle. If there is an error, it is |
| recorded in 'err' and this function returns OCI_ERROR. |
| The error recorded in 'err' can be retrieved by calling |
| OCIErrorGet(). |
| datetime (IN) - Pointer to OCIDateTime to be converted. |
| outarray (OUT) - Result array storage |
| len (OUT) - pointer to length of outarray. |
| fsprec (IN) - Number of fractional seconds digits. |
| DESCRIPTION: |
| Returns an array representing the input DateTime descriptor. |
| RETURNS: |
| OCI_SUCCESS if the function completes successfully. |
| OCI_INVALID_HANDLE if 'err' is NULL. |
| OCI_ERROR if |
| buffer too small |
| error retrieving timezone data |
| invalid region |
| invalid LdiDateTime type |
| |
| --------------------------------OCIDateTimeFromArray--------------------------- |
| sword OCIDateTimeFromArray(void *hndl, |
| OCIError *err, |
| ub1 *inarray, |
| ub4 len |
| ub1 type |
| OCIDateTime *datetime, |
| OCIInterval *reftz, |
| ub1 fsprec); |
| NAME OCIDateTimeFromArray - OCI DateTime convert From Array format |
| PARAMETERS: |
| hndl (IN) - Session/Env handle. |
| err (IN/OUT) - error handle. If there is an error, it is |
| recorded in 'err' and this function returns OCI_ERROR. |
| The error recorded in 'err' can be retrieved by calling |
| OCIErrorGet(). |
| inarray (IN) - Pointer to input array representtion of DateTime |
| len (IN) - len of inarray. |
| type (IN) - One of SQLT_DATE, SQLT_TIME, SQLT_TIME_TZ, SQLT_TIMESTAMP, |
| SQLT_TIMESTAMP_TZ, or SQLT_TIMESTAMP_LTZ. |
| datetime (OUT) - Pointer to the result OCIDateTime. |
| reftz (IN) - timezone interval used with SQLT_TIMESTAMP_LTZ. |
| fsprec (IN) - fractionl seconds digits of precision (0-9). |
| DESCRIPTION: |
| Returns a pointer to an OCIDateTime of type type converted from |
| the inarray. |
| RETURNS: |
| OCI_SUCCESS if the function completes successfully. |
| OCI_INVALID_HANDLE if 'err' is NULL. |
| OCI_ERROR if |
| buffer too small |
| error retrieving timezone data |
| invalid region |
| invalid LdiDateTime type |
| |
| ----------------------------------OCIRowidToChar----------------------------- |
| Name |
| OCIRowidToChar |
| |
| Purpose |
| Converts physical/logical (universal) ROWID to chracter extended (Base 64) |
| representation into user provided buffer outbfp of length outbflp. After |
| execution outbflp contains amount of bytes converted.In case of truncation |
| error, outbflp contains required size to make this conversion successful |
| and returns ORA-1405. |
| |
| Syntax |
| sword OCIRowidToChar( OCIRowid *rowidDesc, |
| OraText *outbfp, |
| ub2 *outbflp, |
| OCIError *errhp) |
| |
| Comments |
| After this conversion, ROWID in character format can be bound using |
| OCIBindByPos or OCIBindByName call and used to query a row at a |
| desired ROWID. |
| |
| Parameters |
| rowidDesc (IN) - rowid DESCriptor which is allocated from OCIDescritorAlloc |
| and populated by a prior SQL statement execution |
| outbfp (OUT) - pointer to the buffer where converted rowid in character |
| representation is stored after successful execution. |
| outbflp (IN/OUT) - pointer to output buffer length variable. |
| Before execution (IN mode) *outbflp contains the size of |
| outbfp, after execution (OUT mode) *outbflp contains amount |
| of bytes converted. In an event of truncation during |
| conversion *outbflp contains the required length to make |
| conversion successful. |
| errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for |
| diagnostic information in the event of an error. |
| |
| ------------------------------OCIDefineArrayOfStruct-------------------------- |
| |
| |
| OCIDefineArrayOfStruct() |
| Name |
| OCI Define for Array of Structures |
| Purpose |
| This call specifies additional attributes necessary for a static array define. |
| Syntax |
| sword OCIDefineArrayOfStruct ( OCIDefine *defnp, |
| OCIError *errhp, |
| ub4 pvskip, |
| ub4 indskip, |
| ub4 rlskip, |
| ub4 rcskip ); |
| Comments |
| This call specifies additional attributes necessary for an array define, |
| used in an array of structures (multi-row, multi-column) fetch. |
| For more information about skip parameters, see the section "Skip Parameters" |
| on page 4-17. |
| Parameters |
| defnp (IN) - the handle to the define structure which was returned by a call |
| to OCIDefineByPos(). |
| errhp (IN) - an error handle which can be passed to OCIErrorGet() for |
| diagnostic information in the event of an error. |
| pvskip (IN) - skip parameter for the next data value. |
| indskip (IN) - skip parameter for the next indicator location. |
| rlskip (IN) - skip parameter for the next return length value. |
| rcskip (IN) - skip parameter for the next return code. |
| Related Functions |
| OCIAttrGet() |
| |
| |
| |
| |
| |
| OCIDefineByPos() |
| Name |
| OCI Define By Position |
| Purpose |
| Associates an item in a select-list with the type and output data buffer. |
| Syntax |
| sb4 OCIDefineByPos ( |
| OCIStmt *stmtp, |
| OCIDefine **defnp, |
| OCIError *errhp, |
| ub4 position, |
| void *valuep, |
| sb4 value_sz, |
| ub2 dty, |
| void *indp, |
| ub2 *rlenp, |
| ub2 *rcodep, |
| ub4 mode ); |
| Comments |
| This call defines an output buffer which will receive data retreived from |
| Oracle. The define is a local step which is necessary when a SELECT statement |
| returns data to your OCI application. |
| This call also implicitly allocates the define handle for the select-list item. |
| Defining attributes of a column for a fetch is done in one or more calls. The |
| first call is to OCIDefineByPos(), which defines the minimal attributes |
| required to specify the fetch. |
| This call takes as a parameter a define handle, which must have been |
| previously allocated with a call to OCIHandleAlloc(). |
| Following the call to OCIDefineByPos() additional define calls may be |
| necessary for certain data types or fetch modes: |
| A call to OCIDefineArrayOfStruct() is necessary to set up skip parameters |
| for an array fetch of multiple columns. |
| A call to OCIDefineObject() is necessary to set up the appropriate |
| attributes of a named data type fetch. In this case the data buffer pointer |
| in ocidefn() is ignored. |
| Both OCIDefineArrayOfStruct() and OCIDefineObject() must be called |
| after ocidefn() in order to fetch multiple rows with a column of named |
| data types. |
| For a LOB define, the buffer pointer must be a lob locator of type |
| OCILobLocator , allocated by the OCIDescAlloc() call. LOB locators, and not |
| LOB values, are always returned for a LOB column. LOB values can then be |
| fetched using OCI LOB calls on the fetched locator. |
| For NCHAR (fixed and varying length), the buffer pointer must point to an |
| array of bytes sufficient for holding the required NCHAR characters. |
| Nested table columns are defined and fetched like any other named data type. |
| If the mode parameter is this call is set to OCI_DYNAMIC_FETCH, the client |
| application can fetch data dynamically at runtime. |
| Runtime data can be provided in one of two ways: |
| callbacks using a user-defined function which must be registered with a |
| subsequent call to OCIDefineDynamic(). When the client library needs a |
| buffer to return the fetched data, the callback will be invoked and the |
| runtime buffers provided will return a piece or the whole data. |
| a polling mechanism using calls supplied by the OCI. This mode is |
| assumed if no callbacks are defined. In this case, the fetch call returns the |
| OCI_NEED_DATA error code, and a piecewise polling method is used |
| to provide the data. |
| Related Functions: For more information about using the |
| OCI_DYNAMIC_FETCH mode, see the section "Runtime Data |
| Allocation and Piecewise Operations" on page 5-16 of Volume 1.. |
| For more information about the define step, see the section "Defining" |
| on page 2-30. |
| Parameters |
| stmtp (IN) - a handle to the requested SQL query operation. |
| defnp (IN/OUT) - a pointer to a pointer to a define handle which is implicitly |
| allocated by this call. This handle is used to store the define information |
| for this column. |
| errhp (IN) - an error handle which can be passed to OCIErrorGet() for |
| diagnostic information in the event of an error. |
| position (IN) - the position of this value in the select list. Positions are |
| 1-based and are numbered from left to right. For example, in the SELECT |
| statement |
| SELECT empno, ssn, mgrno FROM employees; |
| empno is at position 1, ssn is at position 2, and mgrno is at position 3. |
| valuep (IN/OUT) - a pointer to a buffer or an array of buffers of the type |
| specified in the dty parameter. A number of buffers can be specified when |
| results for more than one row are desired in a single fetch call. |
| value_sz (IN) - the size of each valuep buffer in bytes. If the data is stored |
| internally in VARCHAR2 format, the number of characters desired, if different |
| from the buffer size in bytes, may be additionally specified by the using |
| OCIAttrSet(). |
| In an NLS conversion environment, a truncation error will be generated if the |
| number of bytes specified is insufficient to handle the number of characters |
| desired. |
| dty (IN) - the data type. Named data type (SQLT_NTY) and REF (SQLT_REF) |
| are valid only if the environment has been intialized with in object mode. |
| indp - pointer to an indicator variable or array. For scalar data types, |
| pointer to sb2 or an array of sb2s. Ignored for named data types. For named |
| data types, a pointer to a named data type indicator structure or an array of |
| named data type indicator structures is associated by a subsequent |
| OCIDefineObject() call. |
| See the section "Indicator Variables" on page 2-43 for more information about |
| indicator variables. |
| rlenp (IN/OUT) - pointer to array of length of data fetched. Each element in |
| rlenp is the length of the data in the corresponding element in the row after |
| the fetch. |
| rcodep (OUT) - pointer to array of column-level return codes |
| mode (IN) - the valid modes are: |
| OCI_DEFAULT. This is the default mode. |
| OCI_DYNAMIC_FETCH. For applications requiring dynamically |
| allocated data at the time of fetch, this mode must be used. The user may |
| additionally call OCIDefineDynamic() to set up a callback function that |
| will be invoked to receive the dynamically allocated buffers and to set |
| up the memory allocate/free callbacks and the context for the callbacks. |
| valuep and value_sz are ignored in this mode. |
| Related Functions |
| OCIDefineArrayOfStruct(), OCIDefineDynamic(), OCIDefineObject() |
| |
| |
| |
| |
| OCIDefineDynamic() |
| Name |
| OCI Define Dynamic Fetch Attributes |
| Purpose |
| This call is used to set the additional attributes required if the |
| OCI_DYNAMIC_FETCH mode was selected in OCIDefineByPos(). |
| Syntax |
| sword OCIDefineDynamic( OCIDefine *defnp, |
| OCIError *errhp, |
| void *octxp, |
| OCICallbackDefine (ocbfp)( |
| void *octxp, |
| OCIDefine *defnp, |
| ub4 iter, |
| void **bufpp, |
| ub4 **alenpp, |
| ub1 *piecep, |
| void **indpp, |
| ub2 **rcodep) ); |
| Comments |
| This call is used to set the additional attributes required if the |
| OCI_DYNAMIC_FETCH mode has been selected in a call to |
| OCIDefineByPos(). |
| When the OCI_DYNAMIC_FETCH mode is selected, buffers will be |
| dynamically allocated for REF, and named data type, values to receive the |
| data. The pointers to these buffers will be returned. |
| If OCI_DYNAMIC_FETCH mode was selected, and the call to |
| OCIDefineDynamic() is skipped, then the application can fetch data piecewise |
| using OCI calls. |
| For more information about OCI_DYNAMIC_FETCH mode, see the section |
| "Runtime Data Allocation and Piecewise Operations" on page 5-16. |
| Parameters |
| defnp (IN/OUT) - the handle to a define structure returned by a call to |
| OCIDefineByPos(). |
| errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for |
| diagnostic information in the event of an error. |
| octxp (IN) - points to a context for the callback function. |
| ocbfp (IN) - points to a callback function. This is invoked at runtime to get |
| a pointer to the buffer into which the fetched data or a piece of it will be |
| retreived. The callback also specifies the indicator, the return code and the |
| lengths of the data piece and indicator. The callback has the following |
| parameters: |
| octxp (IN) - a context pointer passed as an argument to all the callback |
| functions. |
| defnp (IN) - the define handle. |
| iter (IN) - which row of this current fetch. |
| bufpp (OUT) - returns a pointer to a buffer to store the column value, ie. |
| *bufp points to some appropriate storage for the column value. |
| alenpp (OUT) - returns a pointer to the length of the buffer. *alenpp |
| contains the size of the buffer after return from callback. Gets set to |
| actual data size after fetch. |
| piecep (IN/OUT) - returns a piece value, as follows: |
| The IN value can be OCI_ONE_PIECE, OCI_FIRST_PIECE or |
| OCI_NEXT_PIECE. |
| The OUT value can be OCI_ONE_PIECE if the IN value was |
| OCI_ONE_PIECE. |
| The OUT value can be OCI_ONE_PIECE or OCI_FIRST_PIECE if |
| the IN value was OCI_FIRST_PIECE. |
| The OUT value can only be OCI_NEXT_PIECE or |
| OCI_LAST_PIECE if the IN value was OCI_NEXT_PIECE. |
| indpp (IN) - indicator variable pointer |
| rcodep (IN) - return code variable pointer |
| Related Functions |
| OCIAttrGet() |
| OCIDefineObject() |
| |
| |
| |
| |
| OCIDefineObject() |
| Name |
| OCI Define Named Data Type attributes |
| Purpose |
| Sets up additional attributes necessary for a Named Data Type define. |
| Syntax |
| sword OCIDefineObject ( OCIDefine *defnp, |
| OCIError *errhp, |
| const OCIType *type, |
| void **pgvpp, |
| ub4 *pvszsp, |
| void **indpp, |
| ub4 *indszp ); |
| Comments |
| This call sets up additional attributes necessary for a Named Data Type define. |
| An error will be returned if this function is called when the OCI environment |
| has been initialized in non-Object mode. |
| This call takes as a paramter a type descriptor object (TDO) of datatype |
| OCIType for the named data type being defined. The TDO can be retrieved |
| with a call to OCITypeByName(). |
| See the description of OCIInitialize() on page 13 - 43 for more information |
| about initializing the OCI process environment. |
| Parameters |
| defnp (IN/OUT) - a define handle previously allocated in a call to |
| OCIDefineByPos(). |
| errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for |
| diagnostic information in the event of an error. |
| type (IN, optional) - points to the Type Descriptor Object (TDO) which |
| describes the type of the program variable. Only used for program variables |
| of type SQLT_NTY. This parameter is optional, and may be passed as NULL |
| if it is not being used. |
| pgvpp (IN/OUT) - points to a pointer to a program variable buffer. For an |
| array, pgvpp points to an array of pointers. Memory for the fetched named data |
| type instance(s) is dynamically allocated in the object cache. At the end of |
| the fetch when all the values have been received, pgvpp points to the |
| pointer(s) to these newly allocated named data type instance(s). The |
| application must call OCIObjectMarkDel() to deallocate the named data type |
| instance(s) when they are no longer needed. |
| pvszsp (IN/OUT) - points to the size of the program variable. For an array, it |
| is an array of ub4s. On return points to the size(s) of unpickled fetched |
| values. |
| indpp (IN/OUT) - points to a pointer to the program variable buffer |
| containing the parallel indicator structure. For an array, points to an array |
| of pointers. Memory is allocated to store the indicator structures in the |
| object cache. At the end of the fetch when all values have been received, |
| indpp points to the pointer(s) to these newly allocated indicator structure(s). |
| indszp (IN/OUT) - points to the size(s) of the indicator structure program |
| variable. For an array, it is an array of ub4s. On return points to the size(s) |
| of the unpickled fetched indicator values. |
| Related Functions |
| OCIAttrGet() |
| |
| |
| |
| OCIDescAlloc() |
| Name |
| OCI Get DESCriptor or lob locator |
| Purpose |
| Allocates storage to hold certain data types. The descriptors can be used as |
| bind or define variables. |
| Syntax |
| sword OCIDescAlloc ( const void *parenth, |
| void **descpp, |
| ub4 type, |
| size_t xtramem_sz, |
| void **usrmempp); |
| Comments |
| Returns a pointer to an allocated and initialized structure, corresponding to |
| the type specified in type. A non-NULL descriptor or LOB locator is returned |
| on success. No diagnostics are available on error. |
| This call returns OCI_SUCCESS if successful, or OCI_INVALID_HANDLE if |
| an out-of-memory error occurs. |
| Parameters |
| parenth (IN) - an environment handle. |
| descpp (OUT) - returns a descriptor or LOB locator of desired type. |
| type (IN) - specifies the type of descriptor or LOB locator to be allocated. |
| The specific types are: |
| OCI_DTYPE_SNAP - specifies generation of snapshot descriptor of C |
| type - OCISnapshot |
| OCI_DTYPE_LOB - specifies generation of a LOB data type locator of C |
| type - OCILobLocator |
| OCI_DTYPE_RSET - specifies generation of a descriptor of C type |
| OCIResult that references a result set (a number of rows as a result of a |
| query). This descriptor is bound to a bind variable of data type |
| SQLT_RSET (result set). The descriptor has to be converted into a |
| statement handle using a function - OCIResultSetToStmt() - which can |
| then be passed to OCIDefineByPos() and OCIStmtFetch() to retrieve the |
| rows of the result set. |
| OCI_DTYPE_ROWID - specifies generation of a ROWID descriptor of C |
| type OCIRowid. |
| OCI_DTYPE_COMPLEXOBJECTCOMP - specifies generation of a |
| complex object retrieval descriptor of C type |
| OCIComplexObjectComp. |
| xtramemsz (IN) - specifies an amount of user memory to be allocated for use |
| by the application. |
| usrmempp (OUT) - returns a pointer to the user memory of size xtramemsz |
| allocated by the call for the user. |
| Related Functions |
| OCIDescFree() |
| |
| |
| |
| |
| OCIDescFree() |
| Name |
| OCI Free DESCriptor |
| Purpose |
| Deallocates a previously allocated descriptor. |
| Syntax |
| sword OCIDescFree ( void *descp, |
| ub4 type); |
| Comments |
| This call frees up storage associated with the descriptor, corresponding to the |
| type specified in type. Returns OCI_SUCCESS or OCI_INVALID_HANDLE. |
| All descriptors must be explicitly deallocated. OCI will not deallocate a |
| descriptor if the environment handle is deallocated. |
| Parameters |
| descp (IN) - an allocated descriptor. |
| type (IN) - specifies the type of storage to be freed. The specific types are: |
| OCI_DTYPE_SNAP - snapshot descriptor |
| OCI_DTYPE_LOB - a LOB data type descriptor |
| OCI_DTYPE_RSET - a descriptor that references a result set (a number |
| of rows as a result of a query). |
| OCI_DTYPE_ROWID - a ROWID descriptor |
| OCI_DTYPE_COMPLEXOBJECTCOMP - a complex object retrieval |
| descriptor |
| Related Functions |
| OCIDescAlloc() |
| |
| |
| |
| OCIDescribeAny() |
| Name |
| OCI DeSCribe Any |
| Purpose |
| Describes existing schema objects. |
| Syntax |
| sword OCIDescribeAny ( OCISvcCtx *svchp, |
| OCIError *errhp, |
| void *objptr, |
| ub4 objnm_len, |
| ub1 objptr_typ, |
| ub1 info_level, |
| ub1 objtype, |
| OCIDesc *dschp ); |
| Comments |
| This is a generic describe call that describes existing schema objects: tables, |
| views, synonyms, procedures, functions, packages, sequences, and types. As a |
| result of this call, the describe handle is populated with the object-specific |
| attributes which can be obtained through an OCIAttrGet() call. |
| An OCIParamGet() on the describe handle returns a parameter descriptor for a |
| specified position. Parameter positions begin with 1. Calling OCIAttrGet() on |
| the parameter descriptor returns the specific attributes of a stored procedure |
| or function parameter or a table column descriptor as the case may be. |
| These subsequent calls do not need an extra round trip to the server because |
| the entire schema object description cached on the client side by |
| OCIDescribeAny(). Calling OCIAttrGet() on the describe handle can also return |
| the total number of positions. |
| See the section "Describing" on page 2-33 for more information about describe |
| operations. |
| Parameters |
| TO BE UPDATED |
| svchp (IN/OUT) - a service context handle. |
| errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for |
| diagnostic information in the event of an error. |
| objptr (IN) - the name of the object (a null-terminated string) to be |
| described. Only procedure or function names are valid when connected to an |
| Oracle7 Server. |
| objptr_len (IN) - the length of the string. Must be non-zero. |
| objptr_typ (IN) - Must be OCI_OTYPE_NAME, OCI_OTYPE_REF, or OCI_OTYPE_PTR. |
| info_level (IN) - reserved for future extensions. Pass OCI_DEFAULT. |
| objtype (IN/OUT) - object type. |
| dschp (IN/OUT) - a describe handle that is populated with describe |
| information about the object after the call. |
| Related Functions |
| OCIAttrGet() |
| |
| |
| |
| OCIEnvCreate() |
| Name |
| OCI ENVironment CREATE |
| Purpose |
| This function creates and initializes an environment for the rest of |
| the OCI functions to work under. This call is a replacement for both |
| the OCIInitialize and OCIEnvInit calls. |
| Syntax |
| sword OCIEnvCreate ( OCIEnv **envhpp, |
| ub4 mode, |
| const void *ctxp, |
| const void *(*malocfp) |
| (void *ctxp, |
| size_t size), |
| const void *(*ralocfp) |
| (void *ctxp, |
| void *memptr, |
| size_t newsize), |
| const void (*mfreefp) |
| ( void *ctxp, |
| void *memptr)) |
| size_t xtramemsz, |
| void **usrmempp ); |
| |
| Comments |
| This call creates an environment for all the OCI calls using the modes |
| specified by the user. This call can be used instead of the two calls |
| OCIInitialize and OCIEnvInit. This function returns an environment handle |
| which is then used by the remaining OCI functions. There can be multiple |
| environments in OCI each with its own environment modes. This function |
| also performs any process level initialization if required by any mode. |
| For example if the user wants to initialize an environment as OCI_THREADED, |
| then all libraries that are used by OCI are also initialized in the |
| threaded mode. |
| |
| This call should be invoked before anny other OCI call and should be used |
| instead of the OCIInitialize and OCIEnvInit calls. This is the recommended |
| call, although OCIInitialize and OCIEnvInit calls will still be supported |
| for backward compatibility. |
| |
| envpp (OUT) - a pointer to a handle to the environment. |
| mode (IN) - specifies initialization of the mode. The valid modes are: |
| OCI_DEFAULT - default mode. |
| OCI_THREADED - threaded environment. In this mode, internal data |
| structures are protected from concurrent accesses by multiple threads. |
| OCI_OBJECT - will use navigational object interface. |
| ctxp (IN) - user defined context for the memory call back routines. |
| malocfp (IN) - user-defined memory allocation function. If mode is |
| OCI_THREADED, this memory allocation routine must be thread safe. |
| ctxp - context pointer for the user-defined memory allocation function. |
| size - size of memory to be allocated by the user-defined memory |
| allocation function |
| ralocfp (IN) - user-defined memory re-allocation function. If mode is |
| OCI_THREADED, this memory allocation routine must be thread safe. |
| ctxp - context pointer for the user-defined memory reallocation |
| function. |
| memp - pointer to memory block |
| newsize - new size of memory to be allocated |
| mfreefp (IN) - user-defined memory free function. If mode is |
| OCI_THREADED, this memory free routine must be thread safe. |
| ctxp - context pointer for the user-defined memory free function. |
| memptr - pointer to memory to be freed |
| xtramemsz (IN) - specifies the amount of user memory to be allocated. |
| usrmempp (OUT) - returns a pointer to the user memory of size xtramemsz |
| allocated by the call for the user. |
| |
| Example |
| |
| Related Functions |
| OCIInitialize, OCIEnvInit |
| |
| OCIEnvNlsCreate() |
| Name |
| OCI ENVironment CREATE with NLS info |
| Purpose |
| This function does almost everything OCIEnvCreate does, plus enabling setting |
| of charset and ncharset programmatically, except OCI_UTF16 mode. |
| Syntax |
| sword OCIEnvNlsCreate(OCIEnv **envhpp, |
| ub4 mode, |
| void *ctxp, |
| void *(*malocfp) |
| (void *ctxp, |
| size_t size), |
| void *(*ralocfp) |
| (void *ctxp, |
| void *memptr, |
| size_t newsize), |
| void (*mfreefp) |
| (void *ctxp, |
| void *memptr), |
| size_t xtramemsz, |
| void **usrmempp, |
| ub2 charset, |
| ub2 ncharset) |
| Comments |
| The charset and ncharset must be both zero or non-zero. |
| The parameters have the same meaning as the ones in OCIEnvCreate(). |
| When charset or ncharset is non-zero, the corresponding character set will |
| be used to replace the ones specified in NLS_LANG or NLS_NCHAR. Moreover, |
| OCI_UTF16ID is allowed to be set as charset and ncharset. |
| On the other hand, OCI_UTF16 mode is deprecated with this function. |
| Applications can achieve the same effects by setting |
| both charset and ncharset as OCI_UTF16ID. |
| |
| |
| OCIEnvInit() |
| Name |
| OCI INITialize environment |
| Purpose |
| This call initializes the OCI environment handle. |
| Syntax |
| sword OCIEnvInit ( OCIEnv **envp, |
| ub4 mode, |
| size_t xtramemsz, |
| void **usrmempp ); |
| Comments |
| Initializes the OCI environment handle. No changes are done on an initialized |
| handle. If OCI_ERROR or OCI_SUCCESS_WITH_INFO is returned, the |
| environment handle can be used to obtain ORACLE specific errors and |
| diagnostics. |
| This call is processed locally, without a server round-trip. |
| Parameters |
| envpp (OUT) - a pointer to a handle to the environment. |
| mode (IN) - specifies initialization of an environment mode. The only valid |
| mode is OCI_DEFAULT for default mode |
| xtramemsz (IN) - specifies the amount of user memory to be allocated. |
| usrmempp (OUT) - returns a pointer to the user memory of size xtramemsz |
| allocated by the call for the user. |
| Example |
| See the description of OCISessionBegin() on page 13-84 for an example showing |
| the use of OCIEnvInit(). |
| Related Functions |
| |
| |
| |
| |
| OCIErrorGet() |
| Name |
| OCI Get Diagnostic Record |
| Purpose |
| Returns an error message in the buffer provided and an ORACLE error. |
| Syntax |
| sword OCIErrorGet ( void *hndlp, |
| ub4 recordno, |
| OraText *sqlstate, |
| ub4 *errcodep, |
| OraText *bufp, |
| ub4 bufsiz, |
| ub4 type ); |
| Comments |
| Returns an error message in the buffer provided and an ORACLE error. |
| Currently does not support SQL state. This call can be called a multiple |
| number of times if there are more than one diagnostic record for an error. |
| The error handle is originally allocated with a call to OCIHandleAlloc(). |
| Parameters |
| hndlp (IN) - the error handle, in most cases, or the environment handle (for |
| errors on OCIEnvInit(), OCIHandleAlloc()). |
| recordno (IN) - indicates the status record from which the application seeks |
| info. Starts from 1. |
| sqlstate (OUT) - Not supported in Version 8.0. |
| errcodep (OUT) - an ORACLE Error is returned. |
| bufp (OUT) - the error message text is returned. |
| bufsiz (IN) - the size of the buffer provide to get the error message. |
| type (IN) - the type of the handle. |
| Related Functions |
| OCIHandleAlloc() |
| |
| OCIExtractInit |
| Name |
| OCI Extract Initialize |
| Purpose |
| This function initializes the parameter manager. |
| Syntax |
| sword OCIExtractInit(void *hndl, OCIError *err); |
| Comments |
| It must be called before calling any other parameter manager routine. The NLS |
| information is stored inside the parameter manager context and used in |
| subsequent calls to OCIExtract routines. |
| Returns OCI_SUCCESS, OCI_INVALID_HANDLE, or OCI_ERROR |
| Parameters |
| hndl (IN/OUT) - The OCI environment or session handle. |
| err (IN/OUT) - The OCI error handle. If there is an error, it is recorded in |
| err and this function returns OCI_ERROR. Diagnostic information |
| can be obtained by calling OCIErrorGet(). |
| Related Functions |
| OCIExtractTerm() |
| |
| OCIExtractTerm |
| Name |
| OCI Extract Terminate |
| Purpose |
| This function releases all dynamically allocated storage and may perform |
| other internal bookkeeping functions. |
| Syntax |
| sword OCIExtractTerm(void *hndl, OCIError *err); |
| Comments |
| It must be called when the parameter manager is no longer being used. |
| Returns OCI_SUCCESS, OCI_INVALID_HANDLE, or OCI_ERROR |
| Parameters |
| hndl (IN/OUT) - The OCI environment or session handle. |
| err (IN/OUT) - The OCI error handle. If there is an error, it is recorded in |
| err and this function returns OCI_ERROR. Diagnostic information |
| can be obtained by calling OCIErrorGet(). |
| Related Functions |
| OCIExtractInit() |
| |
| OCIExtractReset |
| Name |
| OCI Extract Reset |
| Purpose |
| The memory currently used for parameter storage, key definition storage, and |
| parameter value lists is freed and the structure is reinitialized. |
| Syntax |
| sword OCIExtractReset(void *hndl, OCIError *err); |
| Comments |
| Returns OCI_SUCCESS, OCI_INVALID_HANDLE, or OCI_ERROR |
| Parameters |
| hndl (IN/OUT) - The OCI environment or session handle. |
| err (IN/OUT) - The OCI error handle. If there is an error, it is recorded in |
| err and this function returns OCI_ERROR. Diagnostic information |
| can be obtained by calling OCIErrorGet(). |
| Related Functions |
| |
| OCIExtractSetNumKeys |
| Name |
| OCI Extract Set Number of Keys |
| Purpose |
| Informs the parameter manager of the number of keys that will be registered. |
| Syntax |
| sword OCIExtractSetNumKeys(void *hndl, OCIError *err, uword numkeys); |
| Comments |
| This routine must be called prior to the first call of OCIExtractSetKey(). |
| Returns OCI_SUCCESS, OCI_INVALID_HANDLE, or OCI_ERROR |
| Parameters |
| hndl (IN/OUT) - The OCI environment or session handle. |
| err (IN/OUT) - The OCI error handle. If there is an error, it is recorded in |
| err and this function returns OCI_ERROR. Diagnostic information |
| can be obtained by calling OCIErrorGet(). |
| numkeys (IN) - The number of keys that will be registered with |
| OCIExtractSetKey(). |
| Related Functions |
| OCIExtractSetKey() |
| |
| OCIExtractSetKey |
| Name |
| OCI Extract Set Key definition |
| Purpose |
| Registers information about a key with the parameter manager. |
| Syntax |
| sword OCIExtractSetKey(void *hndl, OCIError *err, const OraText *name, |
| ub1 type, ub4 flag, const void *defval, |
| const sb4 *intrange, const OraText *const *strlist); |
| Comments |
| This routine must be called after calling OCIExtractSetKey() and before |
| calling OCIExtractFromFile() or OCIExtractFromStr(). |
| Returns OCI_SUCCESS, OCI_INVALID_HANDLE, or OCI_ERROR |
| Parameters |
| hndl (IN/OUT) - The OCI environment or session handle. |
| err (IN/OUT) - The OCI error handle. If there is an error, it is recorded in |
| err and this function returns OCI_ERROR. Diagnostic information |
| can be obtained by calling OCIErrorGet(). |
| name (IN) - The name of the key. |
| type (IN) - The type of the key (OCI_EXTRACT_TYPE_INTEGER, |
| OCI_EXTRACT_TYPE_OCINUM, OCI_EXTRACT_TYPE_STRING, or |
| OCI_EXTRACT_TYPE_BOOLEAN). |
| flag (IN) - Set to OCI_EXTRACT_MULTIPLE if the key can take multiple values |
| or 0 otherwise. |
| defval (IN) - Set to the default value for the key. May be NULL if there is |
| no default. A string default must be a (text*) type, an |
| integer default must be an (sb4*) type, and a boolean default |
| must be a (ub1*) type. |
| intrange (IN) - Starting and ending values for the allowable range of integer |
| values. May be NULL if the key is not an integer type or if |
| all integer values are acceptable. |
| strlist (IN) - List of all acceptable text strings for the key. May be NULL |
| if the key is not a string type or if all text values are |
| acceptable. |
| Related Functions |
| OCIExtractSetNumKeys() |
| |
| OCIExtractFromFile |
| Name |
| OCI Extract parameters From File |
| Purpose |
| The keys and their values in the given file are processed. |
| Syntax |
| sword OCIExtractFromFile(void *hndl, OCIError *err, ub4 flag, |
| OraText *filename); |
| Comments |
| Returns OCI_SUCCESS, OCI_INVALID_HANDLE, or OCI_ERROR |
| Parameters |
| hndl (IN/OUT) - The OCI environment or session handle. |
| err (IN/OUT) - The OCI error handle. If there is an error, it is recorded in |
| err and this function returns OCI_ERROR. Diagnostic information |
| can be obtained by calling OCIErrorGet(). |
| flag (IN) - Zero or has one or more of the following bits set: |
| OCI_EXTRACT_CASE_SENSITIVE, OCI_EXTRACT_UNIQUE_ABBREVS, or |
| OCI_EXTRACT_APPEND_VALUES. |
| filename (IN) - Null-terminated filename string. |
| Related Functions |
| |
| OCIExtractFromStr |
| Name |
| OCI Extract parameters From String |
| Purpose |
| The keys and their values in the given string are processed. |
| Syntax |
| sword OCIExtractFromStr(void *hndl, OCIError *err, ub4 flag, OraText *input); |
| Comments |
| Returns OCI_SUCCESS, OCI_INVALID_HANDLE, or OCI_ERROR |
| Parameters |
| hndl (IN/OUT) - The OCI environment or session handle. |
| err (IN/OUT) - The OCI error handle. If there is an error, it is recorded in |
| err and this function returns OCI_ERROR. Diagnostic information |
| can be obtained by calling OCIErrorGet(). |
| flag (IN) - Zero or has one or more of the following bits set: |
| OCI_EXTRACT_CASE_SENSITIVE, OCI_EXTRACT_UNIQUE_ABBREVS, or |
| OCI_EXTRACT_APPEND_VALUES. |
| input (IN) - Null-terminated input string. |
| Related Functions |
| |
| OCIExtractToInt |
| Name |
| OCI Extract To Integer |
| Purpose |
| Gets the integer value for the specified key. |
| Syntax |
| sword OCIExtractToInt(void *hndl, OCIError *err, OraText *keyname, |
| uword valno, sb4 *retval); |
| Comments |
| The valno'th value (starting with 0) is returned. |
| Returns OCI_SUCCESS, OCI_INVALID_HANDLE, OCI_NO_DATA, or OCI_ERROR. |
| OCI_NO_DATA means that there is no valno'th value for this key. |
| Parameters |
| hndl (IN) - The OCI environment or session handle. |
| err (IN/OUT) - The OCI error handle. If there is an error, it is recorded in |
| err and this function returns OCI_ERROR. Diagnostic information |
| can be obtained by calling OCIErrorGet(). |
| keyname (IN) - Key name. |
| valno (IN) - Which value to get for this key. |
| retval (OUT) - The actual integer value. |
| Related Functions |
| |
| OCIExtractToBool |
| Name |
| OCI Extract To Boolean |
| Purpose |
| Gets the boolean value for the specified key. |
| Syntax |
| sword OCIExtractToBool(void *hndl, OCIError *err, OraText *keyname, |
| uword valno, ub1 *retval); |
| Comments |
| The valno'th value (starting with 0) is returned. |
| Returns OCI_SUCCESS, OCI_INVALID_HANDLE, OCI_NO_DATA, or OCI_ERROR. |
| OCI_NO_DATA means that there is no valno'th value for this key. |
| Parameters |
| hndl (IN) - The OCI environment or session handle. |
| err (IN/OUT) - The OCI error handle. If there is an error, it is recorded in |
| err and this function returns OCI_ERROR. Diagnostic information |
| can be obtained by calling OCIErrorGet(). |
| keyname (IN) - Key name. |
| valno (IN) - Which value to get for this key. |
| retval (OUT) - The actual boolean value. |
| Related Functions |
| |
| OCIExtractToStr |
| Name |
| OCI Extract To String |
| Purpose |
| Gets the string value for the specified key. |
| Syntax |
| sword OCIExtractToStr(void *hndl, OCIError *err, OraText *keyname, |
| uword valno, OraText *retval, uword buflen); |
| Comments |
| The valno'th value (starting with 0) is returned. |
| Returns OCI_SUCCESS, OCI_INVALID_HANDLE, OCI_NO_DATA, or OCI_ERROR. |
| OCI_NO_DATA means that there is no valno'th value for this key. |
| Parameters |
| hndl (IN) - The OCI environment or session handle. |
| err (IN/OUT) - The OCI error handle. If there is an error, it is recorded in |
| err and this function returns OCI_ERROR. Diagnostic information |
| can be obtained by calling OCIErrorGet(). |
| keyname (IN) - Key name. |
| valno (IN) - Which value to get for this key. |
| retval (OUT) - The actual null-terminated string value. |
| buflen (IN) - The length of the buffer for retval. |
| Related Functions |
| |
| Note: The following OCIExtract functions are unavailable in this release |
| |
| OCIExtractToOCINum |
| Name |
| OCI Extract To OCI Number |
| Purpose |
| Gets the OCINumber value for the specified key. |
| Syntax |
| sword OCIExtractToOCINum(void *hndl, OCIError *err, OraText *keyname, |
| uword valno, OCINumber *retval); |
| Comments |
| The valno'th value (starting with 0) is returned. |
| Returns OCI_SUCCESS, OCI_INVALID_HANDLE, OCI_NO_DATA, or OCI_ERROR. |
| OCI_NO_DATA means that there is no valno'th value for this key. |
| Parameters |
| hndl (IN) - The OCI environment or session handle. |
| err (IN/OUT) - The OCI error handle. If there is an error, it is recorded in |
| err and this function returns OCI_ERROR. Diagnostic information |
| can be obtained by calling OCIErrorGet(). |
| keyname (IN) - Key name. |
| valno (IN) - Which value to get for this key. |
| retval (OUT) - The actual OCINumber value. |
| Related Functions |
| |
| OCIExtractToList |
| Name |
| OCI Extract To parameter List |
| Purpose |
| Generates a list of parameters from the parameter structures that are stored |
| in memory. |
| Syntax |
| sword OCIExtractToList(void *hndl, OCIError *err, uword *numkeys); |
| Comments |
| Must be called before OCIExtractValues() is called. |
| Returns OCI_SUCCESS, OCI_INVALID_HANDLE, or OCI_ERROR |
| Parameters |
| hndl (IN) - The OCI environment or session handle. |
| err (IN/OUT) - The OCI error handle. If there is an error, it is recorded in |
| err and this function returns OCI_ERROR. Diagnostic information |
| can be obtained by calling OCIErrorGet(). |
| numkeys (OUT) - Number of distinct keys stored in memory. |
| Related Functions |
| OCIExtractFromList() |
| |
| OCIExtractFromList |
| Name |
| OCI Extract From parameter List |
| Purpose |
| Generates a list of values for the a parameter in the parameter list. |
| Syntax |
| sword OCIExtractFromList(void *hndl, OCIError *err, uword index, |
| OraText *name, ub1 *type, uword *numvals, |
| void ***values); |
| Comments |
| Parameters are specified by an index. OCIExtractToList() must be called prior |
| to calling this routine to generate the parameter list from the parameter |
| structures that are stored in memory. |
| Returns OCI_SUCCESS, OCI_INVALID_HANDLE, or OCI_ERROR |
| Parameters |
| hndl (IN) - The OCI environment or session handle. |
| err (IN/OUT) - The OCI error handle. If there is an error, it is recorded in |
| err and this function returns OCI_ERROR. Diagnostic information |
| can be obtained by calling OCIErrorGet(). |
| name (OUT) - Name of the key for the current parameter. |
| type (OUT) - Type of the current parameter (OCI_EXTRACT_TYPE_STRING, |
| OCI_EXTRACT_TYPE_INTEGER, OCI_EXTRACT_TYPE_OCINUM, or |
| OCI_EXTRACT_TYPE_BOOLEAN) |
| numvals (OUT) - Number of values for this parameter. |
| values (OUT) - The values for this parameter. |
| Related Functions |
| OCIExtractToList() |
| |
| |
| ************************ OCIFileClose() *********************************** |
| |
| Name |
| OCIFileClose - Oracle Call Interface FILE i/o CLOSE |
| |
| Purpose |
| Close a previously opened file. |
| |
| Syntax |
| sword OCIFileClose ( void *hndl, |
| OCIError *err, |
| OCIFileObject *filep ) |
| |
| Comments |
| This function will close a previously opened file. If the function succeeds |
| then OCI_SUCCESS will be returned, else OCI_ERROR. |
| |
| Parameters |
| hndl (IN) - the OCI environment or session handle. |
| err (OUT) - the OCI error handle |
| filep (IN) - the OCIFile file object |
| |
| Related Functions |
| OCIFileOpen. |
| |
| |
| |
| ********************* OCIFileExists() ************************************** |
| |
| Name |
| OCIFileExists - Oracle Call Interface FILE i/o EXIST |
| |
| Purpose |
| Check to see if the file exists. |
| |
| Syntax |
| sword OCIFileExists ( void *hndl, |
| OCIError *err, |
| OraText *filename, |
| OraText *path, |
| ub1 *flag ) |
| |
| Comments |
| This function will set the flag to TRUE if the file exists else it will |
| be set to FALSE. |
| The function will return OCI_ERROR if any error is encountered, else |
| it will return OCI_ERROR. |
| |
| Parameters |
| hndl(IN) - OCI environment or session handle |
| err(OUT) - OCI error handle |
| filename(IN) - filename |
| path(IN) - path of the file |
| flag(OUT) - whether the file exists or not |
| |
| Related Functions. |
| None. |
| |
| |
| **************************** OCIFileFlush() ****************************** |
| |
| |
| Name |
| OCIFileFlush - Oracle Call Interface File i/o FLUSH |
| |
| Purpose |
| Flush the buffers associated with the file to the disk. |
| |
| Syntax |
| sword OCIFileFlush ( void *hndl, |
| OCIError *err, |
| OCIFileObject *filep ) |
| |
| Comments |
| The function will return OCI_ERROR if any error is encountered, else |
| it will return OCI_ERROR. |
| |
| Parameters |
| hndl (IN) - the OCI environment or session handle. |
| err (OUT) - the OCI error handle |
| filep (IN) - the OCIFile file object |
| |
| Related Functions |
| OCIFileOpen, OCIFileWrite |
| |
| |
| |
| *************************** OCIFileGetLength() **************************** |
| |
| Name |
| OCIFileGetLength - Oracle Call Interface FILE i/o GET file LENGTH |
| |
| Purpose |
| Get the length of a file. |
| |
| Syntax |
| OCIFileGetLength(void *hndl, |
| OCIError *err, |
| OraText *filename, |
| OraText *path, |
| ubig_ora *lenp ) |
| |
| Comments |
| The length of the file will be returned in lenp. |
| The function will return OCI_ERROR if any error is encountered, else |
| it will return OCI_ERROR. |
| |
| Parameters |
| hndl (IN) - the OCI environment or session handle. |
| err (OUT) - the OCI error handle. If there is an error, it is recorded |
| in err and this function returns OCI_ERROR. Diagnostic information can be |
| obtained by calling OCIErrorGet(). |
| filename (IN) - file name. |
| path (IN) - path of the file. |
| lenp (OUT) - On output, it is the length of the file in bytes. |
| is the number of bytes in the file. |
| |
| Related Functions |
| None. |
| |
| |
| |
| ******************************** OCIFileInit() ***************************** |
| |
| Name |
| OCIFileInit - Oracle Call Interface FILE i/o INITialize |
| |
| Purpose |
| Initialize the OCI File I/O package and create the OCIFile context. |
| |
| Syntax |
| sword OCIFileInit ( void *hndl, |
| OCIError *err) |
| |
| Comments |
| This function should be called before any of the OCIFile functions are |
| used. |
| The function will return OCI_ERROR if any error is encountered, else |
| it will return OCI_ERROR. |
| |
| Parameters |
| hndl(IN) - OCI environment or session handle. |
| err(OUT) - OCI error structure. |
| |
| Related Functions |
| OCIFileTerm |
| |
| |
| |
| ********************************* OCIFileOpen() ***************************** |
| |
| Name |
| OCIFileOpen - Oracle Call Interface File i/o OPEN |
| |
| Purpose |
| Open a file. |
| |
| Syntax |
| sword OCIFileOpen ( void *hndl, |
| OCIError *err, |
| OCIFileObject **filep, |
| OraText *filename, |
| OraText *path, |
| ub4 mode, |
| ub4 create, |
| ub4 type ) |
| |
| Comments |
| OCIFileOpen returns a handle to the open file in filep if the file is |
| successfully opened. |
| If one wants to use the standard file objects (stdin, stdout & stderr) |
| then OCIFileOpen whould be called with the type filed containing the |
| appropriate type (see the parameter type). If any of the standard files |
| are specified then filename, path, mode and create are ignored. |
| The function will return OCI_ERROR if any error is encountered, else |
| it will return OCI_ERROR. |
| |
| Parameters |
| hndl (OUT) - the OCI environment or session handle. |
| err (OUT) - the OCI error handle. If there is an error, it is recorded |
| in err and this function returns OCI_ERROR. Diagnostic information can be |
| obtained by calling OCIErrorGet(). |
| filep (OUT) - the file object to be returned. |
| filename (IN) - file name (NULL terminated string). |
| path (IN) - path of the file (NULL terminated string). |
| mode - mode in which to open the file (valid modes are OCI_FILE_READONLY, |
| OCI_FILE_WRITEONLY, OCI_FILE_READ_WRITE). |
| create - should the file be created if it does not exist. Valid values |
| are: |
| OCI_FILE_TRUNCATE - create a file regardless of whether or not it exists. |
| If the file already exists overwrite it. |
| OCI_FILE_EXIST - open it if it exists, else fail. |
| OCI_FILE_EXCL - fail if the file exists, else create. |
| OCI_FILE_CREATE - open the file if it exists, and create it if it doesn't. |
| OCI_FILE_APPEND - set the file pointer to the end of the file prior to |
| writing(this flag can be OR'ed with OCI_FILE_EXIST or |
| OCI_FILE_CREATE). |
| type - file type. Valid values are OCI_FILE_TEXT, OCI_FILE_BIN, |
| OCI_FILE_STDIN, OCI_FILE_STDOUT and OCI_FILE_STDERR. |
| If any of the standard files are specified then filename, path, mode |
| and create are ignored. |
| |
| Related Functions. |
| OCIFileClose |
| |
| |
| |
| ************************** OCIFileRead() ************************************ |
| |
| Name |
| OCIFileRead - Oracle Call Interface FILE i/o READ |
| |
| Purpose |
| Read from a file into a buffer. |
| |
| Syntax |
| sword OCIFileRead ( void *hndl, |
| OCIError *err, |
| OCIFileObject *filep, |
| void *bufp, |
| ub4 bufl, |
| ub4 *bytesread ) |
| |
| Comments |
| Upto bufl bytes from the file will be read into bufp. The user should |
| allocate memory for the buffer. |
| The number of bytes read would be in bytesread. |
| The function will return OCI_ERROR if any error is encountered, else |
| it will return OCI_ERROR. |
| |
| Parameters |
| hndl (IN) - the OCI environment or session handle. |
| err (OUT) - the OCI error handle. If there is an error, it is recorded |
| in err and this function returns OCI_ERROR. Diagnostic information can be |
| obtained by calling OCIErrorGet(). |
| filep (IN/OUT) - a File Object that uniquely references the file. |
| bufp (IN) - the pointer to a buffer into which the data will be read. The |
| length of the allocated memory is assumed to be bufl. |
| bufl - the length of the buffer in bytes. |
| bytesread (OUT) - the number of bytes read. |
| |
| Related Functions |
| OCIFileOpen, OCIFileSeek, OCIFileWrite |
| |
| |
| |
| ****************************** OCIFileSeek() ****************************** |
| |
| Name |
| OCIFileSeek - Oracle Call Interface FILE i/o SEEK |
| |
| Purpose |
| Perfom a seek to a byte position. |
| |
| Syntax |
| sword OCIFileSeek ( void *hndl, |
| OCIError *err, |
| OCIFileObject *filep, |
| uword origin, |
| ubig_ora offset, |
| sb1 dir) |
| |
| Comments |
| The function will return OCI_ERROR if any error is encountered, else |
| it will return OCI_ERROR. |
| |
| Parameters |
| hndl (IN) - the OCI environment or session handle. |
| err (OUT) - the OCI error handle. If there is an error, it is recorded |
| in err and this function returns OCI_ERROR. Diagnostic information can be |
| obtained by calling OCIErrorGet(). |
| filep (IN/OUT) - a file handle that uniquely references the file. |
| origin - The starting point we want to seek from. NOTE: The starting |
| point may be OCI_FILE_SEEK_BEGINNING (beginning), OCI_FILE_SEEK_CURRENT |
| (current position), or OCI_FILE_SEEK_END (end of file). |
| offset - The number of bytes from the origin we want to start reading from. |
| dir - The direction we want to go from the origin. NOTE: The direction |
| can be either OCI_FILE_FORWARD or OCI_FILE_BACKWARD. |
| |
| Related Function |
| OCIFileOpen, OCIFileRead, OCIFileWrite |
| |
| |
| |
| *************************** OCIFileTerm() ********************************** |
| |
| Name |
| OCIFileTerm - Oracle Call Interface FILE i/o TERMinate |
| |
| Purpose |
| Terminate the OCI File I/O package and destroy the OCI File context. |
| |
| Syntax |
| sword OCIFileTerm ( void *hndl, |
| OCIError *err ) |
| |
| Comments |
| After this function has been called no OCIFile function should be used. |
| The function will return OCI_ERROR if any error is encountered, else |
| it will return OCI_ERROR. |
| |
| Parameters |
| hndl(IN) - OCI environment or session handle. |
| err(OUT) - OCI error structure. |
| |
| Related Functions |
| OCIFileInit |
| |
| |
| ********************************* OCIFileWrite() **************************** |
| |
| Name |
| OCIFileWrite - Oracle Call Interface FILE i/o WRITE |
| |
| Purpose |
| Write data from buffer into a file. |
| |
| Syntax |
| sword OCIFileWrite ( void *hndl, |
| OCIError *err, |
| OCIFileObject *filep, |
| void *bufp, |
| ub4 buflen |
| ub4 *byteswritten ) |
| |
| Comments |
| The number of bytes written will be in *byteswritten. |
| The function will return OCI_ERROR if any error is encountered, else |
| it will return OCI_ERROR. |
| |
| Parameters |
| hndl (IN) - the OCI environment or session handle. |
| err (OUT) - the OCI error handle. If there is an error, it is recorded |
| in err and this function returns OCI_ERROR. Diagnostic information can be |
| obtained by calling OCIErrorGet(). |
| filep (IN/OUT) - a file handle that uniquely references the file. |
| bufp (IN) - the pointer to a buffer from which the data will be written. |
| The length of the allocated memory is assumed to be the value passed |
| in bufl. |
| bufl - the length of the buffer in bytes. |
| byteswritten (OUT) - the number of bytes written. |
| |
| Related Functions |
| OCIFileOpen, OCIFileSeek, OCIFileRead |
| |
| |
| |
| |
| |
| OCIHandleAlloc() |
| Name |
| OCI Get HaNDLe |
| Purpose |
| This call returns a pointer to an allocated and initialized handle. |
| Syntax |
| sword OCIHandleAlloc ( const void *parenth, |
| void **hndlpp, |
| ub4 type, |
| size_t xtramem_sz, |
| void **usrmempp); |
| Comments |
| Returns a pointer to an allocated and initialized structure, corresponding to |
| the type specified in type. A non-NULL handle is returned on success. Bind |
| handle and define handles are allocated with respect to a statement handle. All |
| other handles are allocated with respect to an environment handle which is |
| passed in as a parent handle. |
| No diagnostics are available on error. This call returns OCI_SUCCESS if |
| successful, or OCI_INVALID_HANDLE if an out-of-memory error occurs. |
| Handles must be allocated using OCIHandleAlloc() before they can be passed |
| into an OCI call. |
| Parameters |
| parenth (IN) - an environment or a statement handle. |
| hndlpp (OUT) - returns a handle to a handle type. |
| type (IN) - specifies the type of handle to be allocated. The specific types |
| are: |
| OCI_HTYPE_ERROR - specifies generation of an error report handle of |
| C type OCIError |
| OCI_HTYPE_SVCCTX - specifies generation of a service context handle |
| of C type OCISvcCtx |
| OCI_HTYPE_STMT - specifies generation of a statement (application |
| request) handle of C type OCIStmt |
| OCI_HTYPE_BIND - specifies generation of a bind information handle |
| of C type OCIBind |
| OCI_HTYPE_DEFINE - specifies generation of a column definition |
| handle of C type OCIDefine |
| OCI_HTYPE_DESCRIBE - specifies generation of a select list |
| description handle of C type OCIDesc |
| OCI_HTYPE_SERVER - specifies generation of a server context handle |
| of C type OCIServer |
| OCI_HTYPE_SESSION - specifies generation of an authentication |
| context handle of C type OCISession |
| OCI_HTYPE_TRANS - specifies generation of a transaction context |
| handle of C type OCITrans |
| OCI_HTYPE_COMPLEXOBJECT - specifies generation of a complex |
| object retrieval handle of C type OCIComplexObject |
| OCI_HTYPE_SECURITY - specifies generation of a security handle of C |
| type OCISecurity |
| xtramem_sz (IN) - specifies an amount of user memory to be allocated. |
| usrmempp (OUT) - returns a pointer to the user memory of size xtramemsz |
| allocated by the call for the user. |
| Related Functions |
| OCIHandleFree() |
| |
| |
| |
| OCIHandleFree() |
| Name |
| OCI Free HaNDLe |
| Purpose |
| This call explicitly deallocates a handle. |
| Syntax |
| sword OCIHandleFree ( void *hndlp, |
| ub4 type); |
| Comments |
| This call frees up storage associated with a handle, corresponding to the type |
| specified in the type parameter. |
| This call returns either OCI_SUCCESS or OCI_INVALID_HANDLE. |
| All handles must be explicitly deallocated. OCI will not deallocate a child |
| handle if the parent is deallocated. |
| Parameters |
| hndlp (IN) - an opaque pointer to some storage. |
| type (IN) - specifies the type of storage to be allocated. The specific types |
| are: |
| OCI_HTYPE_ENV - an environment handle |
| OCI_HTYPE_ERROR - an error report handle |
| OCI_HTYPE_SVCCTX - a service context handle |
| OCI_HTYPE_STMT - a statement (application request) handle |
| OCI_HTYPE_BIND - a bind information handle |
| OCI_HTYPE_DEFINE - a column definition handle |
| OCI_HTYPE_DESCRIBE - a select list description handle |
| OCI_HTYPE_SERVER - a server handle |
| OCI_HTYPE_SESSION - a user authentication handle |
| OCI_HTYPE_TRANS - a transaction handle |
| OCI_HTYPE_COMPLEXOBJECT - a complex object retrieval handle |
| OCI_HTYPE_SECURITY - a security handle |
| Related Functions |
| OCIHandleAlloc() |
| |
| |
| |
| |
| OCIInitialize() |
| Name |
| OCI Process Initialize |
| Purpose |
| Initializes the OCI process environment. |
| Syntax |
| sword OCIInitialize ( ub4 mode, |
| const void *ctxp, |
| const void *(*malocfp) |
| ( void *ctxp, |
| size_t size ), |
| const void *(*ralocfp) |
| ( void *ctxp, |
| void *memp, |
| size_t newsize ), |
| const void (*mfreefp) |
| ( void *ctxp, |
| void *memptr )); |
| Comments |
| This call initializes the OCI process environment. |
| OCIInitialize() must be invoked before any other OCI call. |
| Parameters |
| mode (IN) - specifies initialization of the mode. The valid modes are: |
| OCI_DEFAULT - default mode. |
| OCI_THREADED - threaded environment. In this mode, internal data |
| structures are protected from concurrent accesses by multiple threads. |
| OCI_OBJECT - will use navigational object interface. |
| ctxp (IN) - user defined context for the memory call back routines. |
| malocfp (IN) - user-defined memory allocation function. If mode is |
| OCI_THREADED, this memory allocation routine must be thread safe. |
| ctxp - context pointer for the user-defined memory allocation function. |
| size - size of memory to be allocated by the user-defined memory |
| allocation function |
| ralocfp (IN) - user-defined memory re-allocation function. If mode is |
| OCI_THREADED, this memory allocation routine must be thread safe. |
| ctxp - context pointer for the user-defined memory reallocation |
| function. |
| memp - pointer to memory block |
| newsize - new size of memory to be allocated |
| mfreefp (IN) - user-defined memory free function. If mode is |
| OCI_THREADED, this memory free routine must be thread safe. |
| ctxp - context pointer for the user-defined memory free function. |
| memptr - pointer to memory to be freed |
| Example |
| See the description of OCIStmtPrepare() on page 13-96 for an example showing |
| the use of OCIInitialize(). |
| Related Functions |
| |
| -------------------------------OCITerminate------------------------------------ |
| |
| OCITerminate() |
| Name |
| OCI process Terminate |
| Purpose |
| Do cleanup before process termination |
| Syntax |
| sword OCITerminate (ub4 mode); |
| |
| Comments |
| This call performs OCI related clean up before the OCI process terminates. |
| If the process is running in shared mode then the OCI process is disconnected |
| from the shared memory subsystem. |
| |
| OCITerminate() should be the last OCI call in any process. |
| |
| Parameters |
| mode (IN) - specifies different termination modes. |
| |
| OCI_DEFAULT - default mode. |
| |
| Example |
| |
| Related Functions |
| OCIInitialize() |
| |
| ------------------------ OCIAppCtxSet-------------------------------------- |
| Name |
| OCI Application context Set |
| Purpose |
| Set an attribute and its value for a particular application context |
| namespace |
| Syntax |
| (sword) OCIAppCtxSet((void *) sesshndl, (void *)nsptr,(ub4) nsptrlen, |
| (void *)attrptr, (ub4) attrptrlen, (void *)valueptr, |
| (ub4) valueptrlen, errhp, (ub4)mode); |
| |
| Comments |
| Please note that the information set on the session handle is sent to the |
| server during the next OCIStatementExecute or OCISessionBegin. |
| |
| This information is cleared from the session handle, once the information |
| has been sent over to the server,and should be setup again if needed. |
| |
| Parameters |
| sesshndl (IN/OUT) - Pointer to a session handle |
| nsptr (IN) - Pointer to namespace string |
| nsptrlen (IN) - length of the nsptr |
| attrptr (IN) - Pointer to attribute string |
| attrptrlen (IN) - length of the attrptr |
| valueptr (IN) - Pointer to value string |
| valueptrlen(IN) - length of the valueptr |
| errhp (OUT) - Error from the API |
| mode (IN) - mode of operation (OCI_DEFAULT) |
| |
| Returns |
| error if any |
| Example |
| |
| Related Functions |
| OCIAppCtxClearAll |
| |
| |
| ------------------------ OCIAppCtxClearAll--------------------------------- |
| Name |
| OCI Application Context Clear all attributes in a namespace |
| Purpose |
| To clear the values all attributes in a namespace |
| Syntax |
| (sword) OCIAppCtxClearAll((void *) sesshndl, (void *)nsptr, (ub4) nsptrlen, |
| (OCIError *)errhp, (ub4)mode); |
| |
| Comments |
| This will clean up the context information on the server side during the |
| next piggy-back to the server. |
| |
| Parameters |
| sesshndl (IN/OUT) - Pointer to a session handle |
| nsptr (IN) - Pointer to namespace string where the values of all |
| attributes are cleared |
| nsptrlen (IN) - length of the nsptr |
| errhp (OUT) - Error from the API |
| mode (IN) - mode of operation (OCI_DEFAULT) |
| Example |
| |
| Returns |
| error if any |
| |
| Related Functions |
| OCIAppCtxSet |
| ---------------------- OCIIntervalAssign --------------------------------- |
| sword OCIIntervalAssign(void *hndl, OCIError *err, |
| const OCIInterval *inpinter, OCIInterval *outinter ); |
| |
| DESCRIPTION |
| Copies one interval to another to create a replica |
| PARAMETERS |
| hndl (IN) - Session/Env handle. |
| err (IN/OUT) - error handle. If there is an error, it is |
| recorded in 'err' and this function returns OCI_ERROR. |
| The error recorded in 'err' can be retrieved by calling |
| OCIErrorGet(). |
| (IN) inpinter - Input Interval |
| (OUT) outinter - Output Interval |
| RETURNS |
| OCI_INVALID_HANDLE if 'err' is NULL. |
| OCI_SUCCESS otherwise |
| |
| ---------------------- OCIIntervalCheck ------------------------------------ |
| sword OCIIntervalCheck(void *hndl, OCIError *err, const OCIInterval *interval, |
| ub4 *valid ); |
| |
| DESCRIPTION |
| Checks the validity of an interval |
| PARAMETERS |
| hndl (IN) - Session/Env handle. |
| err (IN/OUT) - error handle. If there is an error, it is |
| recorded in 'err' and this function returns OCI_ERROR. |
| The error recorded in 'err' can be retrieved by calling |
| OCIErrorGet(). |
| (IN) interval - Interval to be checked |
| (OUT) valid - Zero if the interval is valid, else returns an Ored |
| combination of the following codes. |
| |
| Macro name Bit number Error |
| ---------- ---------- ----- |
| OCI_INTER_INVALID_DAY 0x1 Bad day |
| OCI_INTER_DAY_BELOW_VALID 0x2 Bad DAy Low/high bit (1=low) |
| OCI_INTER_INVALID_MONTH 0x4 Bad MOnth |
| OCI_INTER_MONTH_BELOW_VALID 0x8 Bad MOnth Low/high bit (1=low) |
| OCI_INTER_INVALID_YEAR 0x10 Bad YeaR |
| OCI_INTER_YEAR_BELOW_VALID 0x20 Bad YeaR Low/high bit (1=low) |
| OCI_INTER_INVALID_HOUR 0x40 Bad HouR |
| OCI_INTER_HOUR_BELOW_VALID 0x80 Bad HouR Low/high bit (1=low) |
| OCI_INTER_INVALID_MINUTE 0x100 Bad MiNute |
| OCI_INTER_MINUTE_BELOW_VALID 0x200 Bad MiNute Low/high bit(1=low) |
| OCI_INTER_INVALID_SECOND 0x400 Bad SeCond |
| OCI_INTER_SECOND_BELOW_VALID 0x800 bad second Low/high bit(1=low) |
| OCI_INTER_INVALID_FRACSEC 0x1000 Bad Fractional second |
| OCI_INTER_FRACSEC_BELOW_VALID 0x2000 Bad fractional second Low/High |
| |
| |
| RETURNS |
| OCI_SUCCESS if interval is okay |
| OCI_INVALID_HANDLE if 'err' is NULL. |
| |
| ---------------------- OCIIntervalCompare ----------------------------------- |
| sword OCIIntervalCompare(void *hndl, OCIError *err, OCIInterval *inter1, |
| OCIInterval *inter2, sword *result ); |
| |
| DESCRIPTION |
| Compares two intervals, returns 0 if equal, -1 if inter1 < inter2, |
| 1 if inter1 > inter2 |
| PARAMETERS |
| hndl (IN) - Session/Env handle. |
| err (IN/OUT) - error handle. If there is an error, it is |
| recorded in 'err' and this function returns OCI_ERROR. |
| The error recorded in 'err' can be retrieved by calling |
| OCIErrorGet(). |
| inter1 (IN) - Interval to be compared |
| inter2 (IN) - Interval to be compared |
| result (OUT) - comparison result, 0 if equal, -1 if inter1 < inter2, |
| 1 if inter1 > inter2 |
| |
| RETURNS |
| OCI_SUCCESS on success |
| OCI_INVALID_HANDLE if 'err' is NULL. |
| OCI_ERROR if |
| the two input datetimes are not mutually comparable. |
| |
| ---------------------- OCIIntervalDivide ------------------------------------ |
| sword OCIIntervalDivide(void *hndl, OCIError *err, OCIInterval *dividend, |
| OCINumber *divisor, OCIInterval *result ); |
| |
| DESCRIPTION |
| Divides an interval by an Oracle Number to produce an interval |
| PARAMETERS |
| hndl (IN) - Session/Env handle. |
| err (IN/OUT) - error handle. If there is an error, it is |
| recorded in 'err' and this function returns OCI_ERROR. |
| The error recorded in 'err' can be retrieved by calling |
| OCIErrorGet(). |
| dividend (IN) - Interval to be divided |
| divisor (IN) - Oracle Number dividing `dividend' |
| result (OUT) - resulting interval (dividend / divisor) |
| RETURNS |
| OCI_SUCCESS on success |
| OCI_INVALID_HANDLE if 'err' is NULL. |
| |
| ---------------------- OCIIntervalFromNumber -------------------- |
| sword OCIIntervalFromNumber(void *hndl, OCIError *err, |
| OCIInterval *inter, OCINumber *number); |
| DESCRIPTION |
| Converts an interval to an Oracle Number |
| PARAMETERS |
| hndl (IN) - Session/Env handle. |
| err (IN/OUT) - error handle. If there is an error, it is |
| recorded in 'err' and this function returns OCI_ERROR. |
| The error recorded in 'err' can be retrieved by calling |
| OCIErrorGet(). |
| (OUT) interval - Interval to be converted |
| (IN) number - Oracle number result (in years for YEARMONTH interval |
| and in days for DAYSECOND) |
| RETURNS |
| OCI_SUCCESS on success |
| OCI_INVALID_HANDLE if 'err' is NULL. |
| OCI_ERROR on error. |
| NOTES |
| Fractional portions of the date (for instance, minutes and seconds if |
| the unit chosen is hours) will be included in the Oracle number produced. |
| Excess precision will be truncated. |
| |
| ---------------------- OCIIntervalFromText --------------------------------- |
| sword OCIIntervalFromText( void *hndl, OCIError *err, const OraText *inpstr, |
| size_t str_len, OCIInterval *result ); |
| |
| DESCRIPTION |
| Given an interval string produce the interval represented by the string. |
| The type of the interval is the type of the 'result' descriptor. |
| PARAMETERS |
| |
| hndl (IN) - Session/Env handle. |
| err (IN/OUT) - error handle. If there is an error, it is |
| recorded in 'err' and this function returns OCI_ERROR. |
| The error recorded in 'err' can be retrieved by calling |
| OCIErrorGet(). |
| (IN) inpstr - Input string |
| (IN) str_len - Length of input string |
| (OUT) result - Resultant interval |
| RETURNS |
| OCI_SUCCESS on success |
| OCI_INVALID_HANDLE if 'err' is NULL. |
| OCI_ERROR if |
| there are too many fields in the literal string |
| the year is out of range (-4713 to 9999) |
| if the month is out of range (1 to 12) |
| if the day of month is out of range (1 to 28...31) |
| if hour is not in range (0 to 23) |
| if hour is not in range (0 to 11) |
| if minute is not in range (0 to 59) |
| if seconds in minute not in range (0 to 59) |
| if seconds in day not in range (0 to 86399) |
| if the interval is invalid |
| |
| |
| ---------------------- OCIIntervalGetDaySecond -------------------- |
| |
| DESCRIPTION |
| Gets values of day second interval |
| PARAMETERS |
| hndl (IN) - Session/Env handle. |
| err (IN/OUT) - error handle. If there is an error, it is |
| recorded in 'err' and this function returns OCI_ERROR. |
| The error recorded in 'err' can be retrieved by calling |
| OCIErrorGet(). |
| day (OUT) - number of days |
| hour (OUT) - number of hours |
| min (OUT) - number of mins |
| sec (OUT) - number of secs |
| fsec (OUT) - number of fractional seconds |
| result (IN) - resulting interval |
| RETURNS |
| OCI_SUCCESS on success |
| OCI_INVALID_HANDLE if 'err' is NULL. |
| |
| |
| ---------------------- OCIIntervalGetYearMonth -------------------- |
| |
| DESCRIPTION |
| Gets year month from an interval |
| PARAMETERS |
| hndl (IN) - Session/Env handle. |
| err (IN/OUT) - error handle. If there is an error, it is |
| recorded in 'err' and this function returns OCI_ERROR. |
| The error recorded in 'err' can be retrieved by calling |
| OCIErrorGet(). |
| year (OUT) - year value |
| month (OUT) - month value |
| result (IN) - resulting interval |
| RETURNS |
| OCI_SUCCESS on success |
| OCI_INVALID_HANDLE if 'err' is NULL. |
| |
| |
| |
| -------------------------- OCIIntervalAdd ------------------------------ |
| sword OCIIntervalAdd(void *hndl, OCIError *err, OCIInterval *addend1, |
| OCIInterval *addend2, OCIInterval *result ); |
| NAME OCIIntervalAdd - Adds two intervals |
| PARAMETERS |
| hndl (IN) - Session/Env handle. |
| err (IN/OUT) - error handle. If there is an error, it is |
| recorded in 'err' and this function returns OCI_ERROR. |
| The error recorded in 'err' can be retrieved by calling |
| OCIErrorGet(). |
| addend1 (IN) - Interval to be added |
| addend2 (IN) - Interval to be added |
| result (OUT) - resulting interval (addend1 + addend2) |
| DESCRIPTION |
| Adds two intervals to produce a resulting interval |
| RETURNS |
| OCI_SUCCESS on success |
| OCI_ERROR if: |
| the two input intervals are not mutually comparable. |
| the resulting year would go above SB4MAXVAL |
| the resulting year would go below SB4MINVAL |
| OCI_INVALID_HANDLE if 'err' is NULL. |
| NOTES |
| The two input intervals must be mutually comparable |
| |
| ---------------------- OCIIntervalSubtract ------------------------------- |
| sword OCIIntervalSubtract(void *hndl, OCIError *err, OCIInterval *minuend, |
| OCIInterval *subtrahend, OCIInterval *result ); |
| NAME - OCIIntervalSubtract - subtracts two intervals |
| PARAMETERS |
| hndl (IN) - Session/Env handle. |
| err (IN/OUT) - error handle. If there is an error, it is |
| recorded in 'err' and this function returns OCI_ERROR. |
| The error recorded in 'err' can be retrieved by calling |
| OCIErrorGet(). |
| minuend (IN) - interval to be subtracted from |
| subtrahend (IN) - interval subtracted from minuend |
| result (OUT) - resulting interval (minuend - subtrahend) |
| DESCRIPTION |
| Subtracts two intervals and stores the result in an interval |
| RETURNS |
| OCI_SUCCESS on success |
| OCI_INVALID_HANDLE if 'err' is NULL. |
| OCI_ERROR if: |
| the two input intervals are not mutually comparable. |
| the resulting leading field would go below SB4MINVAL |
| the resulting leading field would go above SB4MAXVAL |
| |
| ---------------------- OCIIntervalMultiply --------------------------------- |
| sword OCIIntervalMultiply(void *hndl, OCIError *err, const OCIInterval *inter, |
| OCINumber *nfactor, OCIInterval *result ); |
| |
| DESCRIPTION |
| Multiplies an interval by an Oracle Number to produce an interval |
| PARAMETERS |
| hndl (IN) - Session/Env handle. |
| err (IN/OUT) - error handle. If there is an error, it is |
| recorded in 'err' and this function returns OCI_ERROR. |
| The error recorded in 'err' can be retrieved by calling |
| OCIErrorGet(). |
| inter (IN) - Interval to be multiplied |
| nfactor (IN) - Oracle Number to be multiplied |
| result (OUT) - resulting interval (ifactor * nfactor) |
| RETURNS |
| OCI_SUCCESS on success |
| OCI_INVALID_HANDLE if 'err' is NULL. |
| OCI_ERROR if: |
| the resulting year would go above SB4MAXVAL |
| the resulting year would go below SB4MINVAL |
| |
| |
| ---------------------- OCIIntervalSetDaySecond -------------------- |
| |
| DESCRIPTION |
| Sets day second interval |
| PARAMETERS |
| hndl (IN) - Session/Env handle. |
| err (IN/OUT) - error handle. If there is an error, it is |
| recorded in 'err' and this function returns OCI_ERROR. |
| The error recorded in 'err' can be retrieved by calling |
| OCIErrorGet(). |
| day (IN) - number of days |
| hour (IN) - number of hours |
| min (IN) - number of mins |
| sec (IN) - number of secs |
| fsec (IN) - number of fractional seconds |
| result (OUT) - resulting interval |
| RETURNS |
| OCI_SUCCESS on success |
| OCI_INVALID_HANDLE if 'err' is NULL. |
| |
| |
| ---------------------- OCIIntervalSetYearMonth -------------------- |
| |
| DESCRIPTION |
| Sets year month interval |
| PARAMETERS |
| hndl (IN) - Session/Env handle. |
| err (IN/OUT) - error handle. If there is an error, it is |
| recorded in 'err' and this function returns OCI_ERROR. |
| The error recorded in 'err' can be retrieved by calling |
| OCIErrorGet(). |
| year (IN) - year value |
| month (IN) - month value |
| result (OUT) - resulting interval |
| RETURNS |
| OCI_SUCCESS on success |
| OCI_INVALID_HANDLE if 'err' is NULL. |
| |
| |
| ----------------------- OCIIntervalToNumber --------------------------------- |
| sword OCIIntervalToNumber(void *hndl, OCIError *err, const OCIInterval *inter, |
| OCINumber *number); |
| |
| DESCRIPTION |
| Converts an interval to an Oracle Number |
| PARAMETERS |
| hndl (IN) - Session/Env handle. |
| err (IN/OUT) - error handle. If there is an error, it is |
| recorded in 'err' and this function returns OCI_ERROR. |
| The error recorded in 'err' can be retrieved by calling |
| OCIErrorGet(). |
| (IN) inter - Interval to be converted |
| (OUT) number - Oracle number result (in years for YEARMONTH interval |
| and in days for DAYSECOND) |
| RETURNS |
| OCI_INVALID_HANDLE if 'err' is NULL. |
| OCI_SUCCESS on success |
| NOTES |
| Fractional portions of the date (for instance, minutes and seconds if |
| the unit chosen is hours) will be included in the Oracle number produced. |
| Excess precision will be truncated. |
| |
| ------------------------------- OCIIntervalToText ------------------------- |
| sword OCIIntervalToText( void *hndl, OCIError *err, const OCIInterval *inter, |
| ub1 lfprec, ub1 fsprec, OraText *buffer, |
| size_t buflen, size_t *resultlen ); |
| |
| DESCRIPTION |
| Given an interval, produces a string representing the interval. |
| PARAMETERS |
| hndl (IN) - Session/Env handle. |
| err (IN/OUT) - error handle. If there is an error, it is |
| recorded in 'err' and this function returns OCI_ERROR. |
| The error recorded in 'err' can be retrieved by calling |
| OCIErrorGet(). |
| (IN) inter - Interval to be converted |
| (IN) lfprec - Leading field precision. Number of digits used to |
| represent the leading field. |
| (IN) fsprec - Fractional second precision of the interval. Number of |
| digits used to represent the fractional seconds. |
| (OUT) buffer - buffer to hold result |
| (IN) buflen - length of above buffer |
| (OUT) resultlen - length of result placed into buffer |
| |
| RETURNS |
| OCI_SUCCESS on success |
| OCI_INVALID_HANDLE if 'err' is NULL. |
| OCI_ERROR |
| if the buffer is not large enough to hold the result |
| NOTES |
| The interval literal will be output as `year' or `[year-]month' for |
| YEAR-MONTH intervals and as `seconds' or `minutes[:seconds]' or |
| `hours[:minutes[:seconds]]' or `days[ hours[:minutes[:seconds]]]' for |
| DAY-TIME intervals (where optional fields are surrounded by brackets). |
| |
| ---------------------- OCIIntervalFromTZ -------------------- |
| sword OCIIntervalFromTZ(void *hndl, OCIError *err, const oratext *inpstring, |
| size_t str_len, OCIInterval *result); |
| |
| DESCRIPTION |
| Retuns an OCI_DTYPE_INTERVAL_DS OCIInterval with the region id (if |
| the region is specified in the input string) set and the current |
| absolute offset or an absolut offset with the region id set to 0. |
| PARAMETERS |
| hndl (IN) - Session/Env handle. |
| err (IN/OUT) - error handle. If there is an error, it is |
| recorded in 'err' and this function returns OCI_ERROR. |
| The error recorded in 'err' can be retrieved by calling |
| OCIErrorGet(). |
| inpstring (IN) - pointer to the input string |
| str_len (IN) - inpstring length |
| result - Output Interval |
| RETURNS |
| OCI_SUCCESS on success |
| OCI_INVALID_HANDLE if 'err' is NULL. |
| OCI_ERROR on error |
| Bad interval type |
| Timezone errors |
| NOTES |
| The input string must be of the form [+/-]TZH:TZM or 'TZR [TZD]' |
| |
| ----------------------- OCIKerbAttrSet --------------------- |
| sword OCIKerbAttrSet(OCISession *trgthndlp, ub4 auth_mode, |
| ub1 *ftgt_ticket, ub4 ftgt_ticket_len, |
| ub1 *ftgt_sesskey, ub4 ftgt_sesskey_len, |
| ub2 ftgt_keytype, ub4 ftgt_ticket_flags, |
| sb4 ftgt_auth_time, sb4 ftgt_start_time, |
| sb4 ftgt_end_time, sb4 ftgt_renew_time, |
| oratext *ftgt_principal, ub4 ftgt_principal_len, |
| oratext *ftgt_realm, ub4 ftgt_realm_len, |
| OCIError *errhp); |
| |
| DESCRIPTION |
| This call sets the attributes required for Kerberos authentication |
| on the user handle. |
| |
| PARAMETERS |
| trgthndlp (IN) - The pointer to a user handle. |
| auth_mode (IN) - Indicates what type of Kerberos credentials should |
| be set. Options are: |
| |
| OCI_KERBCRED_PROXY |
| - Set Kerberos credentials for use with |
| proxy authentication. |
| OCI_KERBCRED_CLIENT_IDENTIFIER |
| - Set Kerberos credentials for use |
| with secure client identifier. |
| |
| ftgt_ticket (IN) - Forwardable Ticket Granting Ticket (FTGT). |
| ftgt_ticket_len (IN) - Length of FTGT. |
| ftgt_sesskey(IN) - Session Key associated with FTGT. |
| ftgt_sesskey_len (IN) - Length of session key. |
| ftgt_keytype (IN) - Type of encryption key used to encrypt FTGT. |
| ftgt_ticket_flags (IN) - Flags associated with encryption of FTGT. |
| ftgt_auth_time (IN) - Authentication time compatible with that in FTGT. |
| ftgt_start_time (IN) - Start time compatible with that indicated in FTGT. |
| ftgt_end_time (IN) - End time compatible with that indicated in FTGT. |
| ftgt_renew_time (IN) - Renew time compatible with that indicated in FTGT. |
| ftgt_principal (IN) - Client principal name from FTGT. |
| ftgt_principal_len (IN) - Length of client principal name. |
| ftgt_realm (IN) - Client realm name from FTGT. |
| ftgt_realm_len (IN) - Client realm name length. |
| errhp (IN/OUT) - error handle. If there is an error, it is |
| recorded in 'err' and this function returns OCI_ERROR. |
| The error recorded in 'err' can be retrieved by calling |
| OCIErrorGet(). |
| RETURNS |
| OCI_SUCCESS on success |
| OCI_ERROR on error |
| NOTES |
| |
| OCILdaToSvcCtx() |
| Name |
| OCI toggle version 7 Lda_Def to SerVice context handle |
| Purpose |
| Converts a V7 Lda_Def to a V8 service context handle. |
| Syntax |
| sword OCILdaToSvcCtx ( OCISvcCtx **svchpp, |
| OCIError *errhp, |
| Lda_Def *ldap ); |
| Comments |
| Converts a V7 Lda_Def to a V8 service context handle. The action of this call |
| can be reversed by passing the resulting service context handle to the |
| OCISvcCtxToLda() function. |
| Parameters |
| svchpp (IN/OUT) - the service context handle. |
| errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for |
| diagnostic information in the event of an error. |
| ldap (IN/OUT) - the V7 logon data area returned by OCISvcCtxToLda() from |
| this service context. |
| Related Functions |
| OCISvcCtxToLda() |
| |
| |
| |
| |
| OCILobAppend() |
| |
| Name |
| OCI Lob APpend |
| |
| Purpose |
| Appends a LOB value at the end of another LOB. |
| |
| Syntax |
| sword OCILobAppend ( OCISvcCtx *svchp, |
| OCIError *errhp, |
| OCILobLocator *dst_locp, |
| OCILobLocator *src_locp ); |
| Comments |
| Appends a LOB value at the end of LOB. The data is |
| copied from the source to the destination at the end of the destination. The |
| source and the destination must already exist. The destination LOB is |
| extended to accommodate the newly written data. |
| |
| It is an error to extend the destination LOB beyond the maximum length |
| allowed or to try to copy from a NULL LOB. |
| |
| Parameters |
| svchp (IN) - the service context handle. |
| errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for |
| diagnostic information in the event of an error. |
| dst_locp (IN/OUT) - a locator uniquely referencing the destination LOB. |
| src_locp (IN/OUT) - a locator uniquely referencing the source LOB. |
| |
| Related Functions |
| OCILobTrim() |
| OCIErrorGet() |
| OCILobWrite() |
| OCILobCopy() |
| |
| |
| |
| OCILobAssign() |
| |
| Name |
| OCI Lob ASsiGn |
| |
| Purpose |
| Assigns one LOB/FILE locator to another. |
| |
| Syntax |
| sword OCILobAssign ( OCIEnv *envhp, |
| OCIError *errhp, |
| const OCILobLocator *src_locp, |
| OCILobLocator **dst_locpp ); |
| |
| Comments |
| Assign source locator to destination locator. After the assignment, both |
| locators refer to the same LOB data. For internal LOBs, the source locator's |
| LOB data gets copied to the destination locator's LOB data only when the |
| destination locator gets stored in the table. Therefore, issuing a flush of |
| the object containing the destination locator will copy the LOB data. For |
| FILEs only the locator that refers to the OS file is copied to the table. The |
| OS file is not copied. |
| Note: The only difference between this and OCILobLocatorAssign is that this |
| takes an environment handle whereas OCILobLocatorAssign takes an OCI service |
| handle |
| |
| Parameters |
| envhp (IN/OUT) - OCI environment handle initialized in object mode. |
| errhp (IN/OUT) - The OCI error handle. If there is an error, it is recorded |
| in errhp and this function returns OCI_ERROR. Diagnostic information can be |
| obtained by calling OCIErrorGet(). |
| src_locp (IN) - LOB locator to copy from. |
| dst_locpp (IN/OUT) - LOB locator to copy to. The caller must allocate space |
| for the OCILobLocator by calling OCIDescriptorAlloc(). |
| |
| See also |
| OCIErrorGet() |
| OCILobIsEqual() |
| OCILobLocatorIsInit() |
| OCILobLocatorAssign() |
| |
| |
| OCILobCharSetForm() |
| |
| Name |
| OCI Lob Get Character Set Form |
| |
| Purpose |
| Gets the LOB locator's character set fpr,, if any. |
| |
| Syntax |
| sword OCILobCharSetForm ( OCIEnv *envhp, |
| OCIError *errhp, |
| const OCILobLocator *locp, |
| ub1 *csfrm ); |
| |
| Comments |
| Returns the character set form of the input LOB locator in the csfrm output |
| parameter. |
| |
| Parameters |
| envhp (IN/OUT) - OCI environment handle initialized in object mode. |
| errhp (IN/OUT) - error handle. The OCI error handle. If there is an error, it |
| is recorded in err and this function returns OCI_ERROR. Diagnostic |
| information can be obtained by calling OCIErrorGet(). |
| locp (IN) - LOB locator for which to get the character set form. |
| csfrm(OUT) - character set form of the input LOB locator. If the input |
| locator is for a BLOB or a BFILE, csfrm is set to 0 since there is no concept |
| of a character set for binary LOBs/FILEs. The caller must allocate space for |
| the csfrm (ub1) and not write into the space. |
| See also |
| OCIErrorGet(), OCILobCharSetId(), OCILobLocatorIsInit |
| |
| |
| |
| OCILobCharSetId() |
| |
| Name |
| OCI Lob get Character Set IDentifier |
| |
| Purpose |
| Gets the LOB locator's character set ID, if any. |
| |
| Syntax |
| sword OCILobCharSetId ( OCIEnv *envhp, |
| OCIError *errhp, |
| const OCILobLocator *locp, |
| ub2 *csid ); |
| |
| Comments |
| Returns the character set ID of the input LOB locator in the cid output |
| parameter. |
| |
| Parameters |
| envhp (IN/OUT) - OCI environment handle initialized in object mode. |
| errhp (IN/OUT) - error handle. The OCI error handle. If there is an error, it |
| is recorded in err and this function returns OCI_ERROR. Diagnostic |
| information can be obtained by calling OCIErrorGet(). |
| locp (IN) - LOB locator for which to get the character set ID. |
| csid (OUT) - character set ID of the input LOB locator. If the input locator |
| is for a BLOB or a BFILE, csid is set to 0 since there is no concept of a |
| character set for binary LOBs/FILEs. The caller must allocate space for the |
| character set id of type ub2 and not write into the space. |
| |
| See also |
| OCIErrorGet(), OCILobCharSetForm(), OCILobLocatorIsInit() |
| |
| |
| |
| OCILobCopy() |
| |
| Name |
| OCI Lob Copy |
| |
| Purpose |
| Copies a portion of a LOB value into another LOB value. |
| |
| Syntax |
| sword OCILobCopy ( OCISvcCtx *svchp, |
| OCIError *errhp, |
| OCILobLocator *dst_locp, |
| OCILobLocator *src_locp, |
| ub4 amount, |
| ub4 dst_offset, |
| ub4 src_offset ); |
| |
| Comments |
| Copies a portion of a LOB value into another LOB as specified. The data |
| is copied from the source to the destination. The source (src_locp) and the |
| destination (dlopb) LOBs must already exist. |
| If the data already exists at the destination's start position, it is |
| overwritten with the source data. If the destination's start position is |
| beyond the end of the current data, a hole is created from the end of the data |
| to the beginning of the newly written data from the source. The destination |
| LOB is extended to accommodate the newly written data if it extends |
| beyond the current length of the destination LOB. |
| It is an error to extend the destination LOB beyond the maximum length |
| allowed or to try to copy from a NULL LOB. |
| Parameters |
| svchp (IN) - the service context handle. |
| errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for |
| diagnostic information in the event of an error. |
| dst_locp (IN/OUT) - a locator uniquely referencing the destination LOB. |
| src_locp (IN/OUT) - a locator uniquely referencing the source LOB. |
| amount (IN) - the number of character or bytes, as appropriate, to be copied. |
| dst_offset (IN) - this is the absolute offset for the destination LOB. |
| For character LOBs it is the number of characters from the beginning of the |
| LOB at which to begin writing. For binary LOBs it is the number of bytes from |
| the beginning of the lob from which to begin reading. The offset starts at 1. |
| src_offset (IN) - this is the absolute offset for the source LOB. |
| For character LOBs it is the number of characters from the beginning of the |
| LOB, for binary LOBs it is the number of bytes. Starts at 1. |
| |
| See Also |
| OCIErrorGet(), OCILobAppend(), OCILobWrite(), OCILobTrim() |
| |
| OCILobCreateTemporary() |
| |
| Name |
| OCI Lob Create Temporary |
| |
| Purpose |
| Create a Temporary Lob |
| |
| Syntax |
| sword OCILobCreateTemporary(OCISvcCtx *svchp, |
| OCIError *errhp, |
| OCILobLocator *locp, |
| ub2 csid, |
| ub1 csfrm, |
| ub1 lobtype, |
| boolean cache, |
| OCIDuration duration); |
| |
| |
| Comments |
| svchp (IN) - the service context handle. |
| errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for |
| diagnostic information in the event of an error. |
| locp (IN/OUT) - a locator which points to the temporary Lob |
| csid (IN) - the character set id |
| csfrm(IN) - the character set form |
| lobtype (IN) - the lob type - one of the three constants OCI_TEMP_BLOB, |
| OCI_TEMP_CLOB and OCI_TEMP_NCLOB |
| cache(IN)- TRUE if the temporary LOB goes through the cache; FALSE, if not. |
| duration(IN)- duration of the temporary LOB; Can be a valid duration id or one |
| of the values: OCI_DURATION_SESSION, OCI_DURATION_CALL |
| Note: OCI_DURATION_TRANSACTION is NOT supported in 8.1 |
| Related functions |
| OCILobFreeTemporary() |
| OCILobIsTemporary() |
| |
| OCILobDisableBuffering() |
| |
| Name |
| OCI Lob Disable Buffering |
| |
| Purpose |
| Disable lob buffering for the input locator. |
| |
| |
| Syntax |
| sword OCILobDisableBuffering ( OCISvcCtx *svchp, |
| OCIError *errhp, |
| OCILobLocator *locp); |
| |
| Comments |
| |
| Disable lob buffering for the input locator. The next time data is |
| read/written from/to the lob through the input locator, the lob |
| buffering subsystem is *not* used. Note that this call does *not* |
| implicitly flush the changes made in the buffering subsystem. The |
| user must explicitly call OCILobFlushBuffer() to do this. |
| |
| Parameters |
| svchp (IN) - the service context handle. |
| errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for |
| diagnostic information in the event of an error. |
| locp (IN/OUT) - a locator uniquely referencing the LOB. |
| |
| Related Functions |
| OCILobEnableBuffering() |
| OCIErrorGet() |
| OCILobFlushBuffer() |
| |
| |
| |
| |
| OCILobEnableBuffering() |
| |
| Name |
| OCI Lob Enable Buffering |
| |
| Purpose |
| Enable lob buffering for the input locator. |
| |
| |
| Syntax |
| sword OCILobEnableBuffering ( OCISvcCtx *svchp, |
| OCIError *errhp, |
| OCILobLocator *locp); |
| |
| Comments |
| |
| Enable lob buffering for the input locator. The next time data is |
| read/written from/to the lob through the input locator, the lob |
| buffering subsystem is used. |
| |
| Once lob buffering is enabled for a locator, if that locator is passed to |
| one of the following routines, an error is returned: |
| OCILobCopy, OCILobAppend, OCILobErase, OCILobGetLength, OCILobTrim |
| |
| Parameters |
| svchp (IN) - the service context handle. |
| errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for |
| diagnostic information in the event of an error. |
| locp (IN/OUT) - a locator uniquely referencing the LOB. |
| |
| Related Functions |
| OCILobDisableBuffering() |
| OCIErrorGet() |
| OCILobWrite() |
| OCILobRead() |
| OCILobFlushBuffer() |
| |
| |
| |
| |
| OCILobErase() |
| |
| Name |
| OCI Lob ERase |
| |
| Purpose |
| Erases a specified portion of the LOB data starting at a specified offset. |
| |
| Syntax |
| sword OCILobErase ( OCISvcCtx *svchp, |
| OCIError *errhp, |
| OCILobLocator *locp, |
| ub4 *amount, |
| ub4 offset ); |
| |
| Comments |
| Erases a specified portion of the LOB data starting at a specified offset. |
| The actual number of characters/bytes erased is returned. The actual number |
| of characters/bytes and the requested number of characters/bytes will differ |
| if the end of the LOB data is reached before erasing the requested number of |
| characters/bytes. |
| If a section of data from the middle of the LOB data is erased, a hole is |
| created. When data from that hole is read, 0's are returned. If the LOB is |
| NULL, this routine will indicate that 0 characters/bytes were erased. |
| |
| Parameters |
| svchp (IN) - the service context handle. |
| errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for |
| diagnostic information in the event of an error. |
| locp (IN/OUT) - the LOB for which to erase a section of data. |
| amount (IN/OUT) - On IN, the number of characters/bytes to erase. On OUT, |
| the actual number of characters/bytes erased. |
| offset (IN) - absolute offset from the beginning of the LOB data from which |
| to start erasing data. Starts at 1. |
| |
| See Also |
| OCIErrorGet(), OCILobRead(), OCILobWrite() |
| |
| OCILobOpen() |
| |
| Name |
| OCI Lob Open |
| |
| Purpose |
| Opens an internal or external Lob. |
| |
| Syntax |
| sword OCILobOpen( OCISvcCtx *svchp, |
| OCIError *errhp, |
| OCILobLocator *locp, |
| ub1 mode ); |
| |
| Comments |
| It is an error if the same lob is opened more than once in |
| the same transaction. Lobs are opened implicitly if they are |
| not opened before using them. A LOB has to be closed before |
| the transaction commits else the transaction is rolled back. |
| Open locators are closed if the transaction aborts. Multiple |
| users can open the same lob on different locators. |
| Parameters |
| svchp (IN) - the service context handle. |
| errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for |
| diagnostic information in the event of an error. |
| locp (IN/OUT) - locator points to the LOB to be opened |
| mode (IN) - mode in which to open the lob. The valid modes are |
| read-only - OCI_FILE_READONLY, read-write - OCI_FILE_READWRITE |
| |
| OCILobClose() |
| |
| Name |
| OCI Lob Close |
| |
| Purpose |
| Closes an open internal or external Lob. |
| |
| Syntax |
| sword OCILobClose( OCISvcCtx *svchp, |
| OCIError *errhp, |
| OCILobLocator *locp ); |
| |
| |
| Comments |
| It is an error if the lob is not open at this time. All LOBs |
| that have been opened in a transaction have to be closed |
| before the transaction commits, else the transaction gets |
| rolled back. |
| |
| Parameters |
| svchp (IN) - the service context handle. |
| errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for |
| diagnostic information in the event of an error. |
| locp (IN) - A locator that was opened using OCILobOpen() |
| |
| |
| OCILobFileClose() |
| |
| Name |
| OCI Lob File CLoSe |
| |
| Purpose |
| Closes a previously opened FILE. |
| |
| Syntax |
| sword OCILobFileClose ( OCISvcCtx *svchp, |
| OCIError *errhp, |
| OCILobLocator *filep ); |
| |
| Comments |
| Closes a previously opened FILE. It is an error if this function is called for |
| an internal LOB. No error is returned if the FILE exists but is not opened. |
| Parameters |
| svchp (IN) - the service context handle. |
| errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for |
| diagnostic information in the event of an error. |
| filep (IN/OUT) - a pointer to a FILE locator to be closed. |
| |
| See Also |
| OCIErrorGet(), OCILobFileOpen(), OCILobFileCloseAll(), OCILobFileIsOpen(), |
| OCILobFileExists(), CREATE DIRECTORY DDL |
| |
| |
| |
| |
| OCILobFileCloseAll() |
| |
| Name |
| OCI LOB FILE Close All |
| |
| Purpose |
| Closes all open FILEs on a given service context. |
| |
| Syntax |
| sword OCILobFileCLoseAll ( OCISvcCtx *svchp, |
| OCIError *errhp ); |
| |
| Comments |
| Closes all open FILEs on a given service context. |
| |
| Parameters |
| svchp (IN) - the service context handle. |
| errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for |
| diagnostic information in the event of an error. |
| |
| See also |
| OCILobFileClose(), |
| OCIErrorGet(), OCILobFileOpen(), OCILobFileIsOpen(), |
| OCILobFileExists(), CREATE DIRECTORY DDL |
| |
| |
| |
| |
| OCILobFileExists() |
| |
| Name |
| OCI LOB FILE exists |
| |
| Purpose |
| Tests to see if the FILE exists on the server |
| |
| Syntax |
| sword OCILobFileExists ( OCISvcCtx *svchp, |
| OCIError *errhp, |
| OCILobLocator *filep, |
| boolean *flag ); |
| |
| Comments |
| Checks to see if a FILE exists for on the server. |
| |
| Parameters |
| svchp (IN) - the OCI service context handle. |
| errhp (IN/OUT) - error handle. The OCI error handle. If there is an error, |
| it is recorded in err and this function returns OCI_ERROR. Diagnostic |
| information can be obtained by calling OCIErrorGet(). |
| filep (IN) - pointer to the FILE locator that refers to the file. |
| flag (OUT) - returns TRUE if the FILE exists; FALSE if it does not. |
| |
| See also |
| OCIErrorGet, CREATE DIRECTORY (DDL) |
| |
| |
| |
| |
| OCILobFileGetName() |
| |
| Name |
| OCI LOB FILE Get file Name |
| |
| Purpose |
| Gets the FILE locator's directory alias and file name. |
| |
| Syntax |
| sword OCILobFileGetName ( OCIEnv *envhp, |
| OCIError *errhp, |
| const OCILobLocator *filep, |
| OraText *dir_alias, |
| ub2 *d_length, |
| OraText *filename, |
| ub2 *f_length ); |
| |
| Comments |
| Returns the directory alias and file name associated with this file locator. |
| |
| Parameters |
| envhp (IN/OUT) - OCI environment handle initialized in object mode. |
| errhp (IN/OUT) -The OCI error handle. If there is an error, it is recorded in |
| errhp and this function returns OCI_ERROR. Diagnostic information can be |
| obtained by calling OCIErrorGet(). |
| filep (IN) - FILE locator for which to get the directory alias and file name. |
| dir_alias (OUT) - buffer into which the directory alias name is placed. The |
| caller must allocate enough space for the directory alias name and must not |
| write into the space. |
| d_length (IN/OUT) |
| - IN: length of the input dir_alias string; |
| - OUT: length of the returned dir_alias string. |
| filename (OUT) - buffer into which the file name is placed. The caller must |
| allocate enough space for the file name and must not write into the space. |
| f_length (IN/OUT) |
| - IN: length of the input filename string; |
| - OUT: lenght of the returned filename string. |
| |
| See also |
| OCILobFileSetName(), OCIErrorGet() |
| |
| |
| |
| |
| OCILobFileIsOpen() |
| |
| Name |
| OCI LOB FILE Is Open? |
| |
| Purpose |
| Tests to see if the FILE is open |
| |
| Syntax |
| sword OCILobFileIsOpen ( OCISvcCtx *svchp, |
| OCIError *errhp, |
| OCILobLocator *filep, |
| boolean *flag ); |
| |
| Comments |
| Checks to see if the FILE on the server is open for a given LobLocator. |
| |
| Parameters |
| svchp (IN) - the OCI service context handle. |
| errhp (IN/OUT) - error handle. The OCI error handle. If there is an error, it |
| is recorded in err and this function returns OCI_ERROR. Diagnostic |
| information can be obtained by calling OCIErrorGet(). |
| filep (IN) - pointer to the FILE locator being examined. If the input file |
| locator was never passed to OCILobFileOpen(), the file is considered not to |
| be opened by this locator. However, a different locator may have opened the |
| file. More than one file opens can be performed on the same file using |
| different locators. |
| flag (OUT) - returns TRUE if the FILE is opened using this locator; FALSE if |
| it is not. |
| |
| See also |
| OCIErrorGet, OCILobFileOpen, OCILobFileClose, OCILobFileCloseAll, CREATE |
| DIRECTORY SQL command |
| |
| |
| OCILobFileOpen() |
| |
| Name |
| OCI LOB FILE open |
| |
| Purpose |
| Opens a FILE for read-only access |
| |
| Syntax |
| sword OCILobFileOpen ( OCISvcCtx *svchp, |
| OCIError *errhp, |
| OCILobLocator *filep, |
| ub1 mode ); |
| |
| Comments |
| Opens a FILE. The FILE can be opened for read-only access only. FILEs may not |
| be written to throough ORACLE. |
| |
| Parameters |
| svchp (IN) - the service context handle. |
| errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for |
| diagnostic information in the event of an error. |
| filep (IN/OUT) - the FILE to open. Error if the locator does not refer to a |
| FILE. |
| mode (IN) - mode in which to open the file. The only valid mode is |
| read-only - OCI_FILE_READONLY. |
| |
| See Also |
| OCILobFileClose, OCIErrorGet, OCILobFileCloseAll, OCILobFileIsOpen, |
| OCILobFileSetName, CREATE DIRECTORY |
| |
| |
| |
| |
| OCILobFileSetName() |
| |
| Name |
| OCI Lob File Set NaMe |
| |
| Purpose |
| Sets directory alias and file name in the FILE locator. |
| |
| Syntax |
| sword OCILobFileSetName ( OCIEnv *envhp, |
| OCIError *errhp, |
| OCILobLocator **filepp, |
| OraText *dir_alias, |
| ub2 d_length, |
| OraText *filename, |
| ub2 f_length ); |
| Comments |
| Sets the directory alias and file name in the LOB file locator. |
| Parameters |
| envhp (IN/OUT) - OCI environment handle initialized in object mode. |
| errhp (IN/OUT) - The OCI error handle. If there is an error, it is recorded |
| in errhp and this function returns OCI_ERROR. Diagnostic information can be |
| obtained by calling OCIErrorGet(). |
| filepp (IN/OUT) - FILE locator for which to set the directory alias name. |
| The caller must have already allocated space for the locator by calling |
| OCIDescriptorAlloc(). |
| dir_alias (IN) - buffer that contains the directory alias name to set in the |
| locator. |
| d_length (IN) - length of the input dir_alias parameter. |
| filename (IN) - buffer that contains the file name is placed. |
| f_length (IN) - length of the input filename parameter. |
| See also |
| OCILobFileGetName, OCIErrorGet, CREATE DIRECTORY |
| |
| |
| |
| |
| OCILobFlushBuffer() |
| |
| Name |
| OCI Lob Flush all Buffers for this lob. |
| |
| Purpose |
| Flush/write all buffers for this lob to the server. |
| |
| |
| Syntax |
| sword OCILobFlushBuffer ( OCISvcCtx *svchp, |
| OCIError *errhp, |
| OCILobLocator *locp, |
| ub4 flag); |
| |
| Comments |
| |
| Flushes to the server, changes made to the buffering subsystem that |
| are associated with the lob referenced by the input locator. This |
| routine will actually write the data in the buffer to the lob in |
| the database. Lob buffering must have already been enabled for the |
| input lob locator. |
| |
| This routine, by default, does not free the buffer resources for |
| reallocation to another buffered LOB operation. However, if you |
| want to free the buffer explicitly, you can set the flag parameter |
| to OCI_LOB_BUFFER_FREE. |
| |
| Parameters |
| svchp (IN/OUT) - the service context handle. |
| errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for |
| diagnostic information in the event of an error. |
| locp (IN/OUT) - a locator uniquely referencing the LOB. |
| flag (IN) - to indicate if the buffer resources need to be freed |
| after a flush. Default value is OCI_LOB_BUFFER_NOFREE. |
| Set it to OCI_LOB_BUFFER_FREE if you want the buffer |
| resources to be freed. |
| Related Functions |
| OCILobEnableBuffering() |
| OCILobDisableBuffering() |
| OCIErrorGet() |
| OCILobWrite() |
| OCILobRead() |
| |
| |
| OCILobFreeTemporary() |
| |
| Name |
| OCI Lob Free Temporary |
| |
| Purpose |
| Free a temporary LOB |
| |
| Syntax |
| sword OCILobFreeTemporary(OCISvcCtx *svchp, |
| OCIError *errhp, |
| OCILobLocator *locp); |
| |
| Comments |
| Frees the contents of the temporary Lob this locator is pointing to. Note |
| that the locator itself is not freed until a OCIDescriptorFree is done. |
| |
| Parameters |
| svchp (IN/OUT) - the service context handle. |
| errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for |
| diagnostic information in the event of an error. |
| locp (IN/OUT) - a locator uniquely referencing the LOB |
| |
| Related functions |
| OCILobCreateTemporary() |
| OCILobIsTemporary() |
| |
| |
| Name |
| OCI Lob/File Get Chunk Size |
| |
| Purpose |
| When creating the table, the user can specify the chunking factor, which can |
| be a multiple of Oracle blocks. This corresponds to the chunk size used by the |
| LOB data layer when accessing/modifying the LOB value. Part of the chunk is |
| used to store system-related information and the rest stores the LOB value. |
| This function returns the amount of space used in the LOB chunk to store |
| the LOB value. |
| |
| Syntax |
| sword OCILobGetChunkSize ( OCISvcCtx *svchp, |
| OCIError *errhp, |
| OCILobLocator *locp, |
| ub4 *chunksizep ); |
| |
| Comments |
| Performance will be improved if the user issues read/write |
| requests using a multiple of this chunk size. For writes, there is an added |
| benefit since LOB chunks are versioned and, if all writes are done on chunk |
| basis, no extra/excess versioning is done nor duplicated. Users could batch |
| up the write until they have enough for a chunk instead of issuing several |
| write calls for the same chunk. |
| |
| Parameters |
| svchp (IN) - the service context handle. |
| errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for |
| diagnostic information in the event of an error. |
| locp (IN/OUT) - a LOB locator that uniquely references the LOB. For internal |
| LOBs, this locator must be a locator that was obtained from the server |
| specified by svchp. For FILEs, this locator can be initialized by a Select or |
| OCILobFileSetName. |
| chunksizep (OUT) - On output, it is the length of the LOB if not NULL - for |
| character LOBs it is the number of characters, for binary LOBs it is the |
| number of bytes in the LOB. |
| |
| Related Functions |
| |
| OCILobGetLength() |
| |
| Name |
| OCI Lob/File Length |
| |
| Purpose |
| Gets the length of a LOB/FILE. |
| |
| Syntax |
| sword OCILobGetLength ( OCISvcCtx *svchp, |
| OCIError *errhp, |
| OCILobLocator *locp, |
| ub4 *lenp ); |
| |
| Comments |
| Gets the length of a LOB/FILE. If the LOB/FILE is NULL, the length is |
| undefined. |
| |
| Parameters |
| svchp (IN) - the service context handle. |
| errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for |
| diagnostic information in the event of an error. |
| locp (IN/OUT) - a LOB locator that uniquely references the LOB. For internal |
| LOBs, this locator must be a locator that was obtained from the server |
| specified by svchp. For FILEs, this locator can be initialized by a Select or |
| OCILobFileSetName. |
| lenp (OUT) - On output, it is the length of the LOB if not NULL - for |
| character LOBs it is the number of characters, for binary LOBs it is the |
| number of bytes in the LOB. |
| |
| Related Functions |
| OCIErrorGet, OCIFileSetName |
| |
| |
| |
| OCILobIsEqual() |
| |
| Name |
| |
| OCI Lob Is Equal |
| |
| Purpose |
| Compares two LOB locators for equality. |
| |
| Syntax |
| sword OCILobIsEqual ( OCIEnv *envhp, |
| const OCILobLocator *x, |
| const OCILobLocator *y, |
| boolean *is_equal ); |
| |
| Comments |
| Compares the given LOB locators for equality. Two LOB locators are equal if |
| and only if they both refer to the same LOB data. |
| Two NULL locators are considered not equal by this function. |
| Parameters |
| envhp (IN) - the OCI environment handle. |
| x (IN) - LOB locator to compare. |
| y (IN) - LOB locator to compare. |
| is_equal (OUT) - TRUE, if the LOB locators are equal; FALSE if they are not. |
| |
| See also |
| OCILobAssign, OCILobLocatorIsInit |
| OCILobLocatorAssign, |
| OCILobIsOpen() |
| |
| Name |
| |
| OCI Lob Is Open |
| sword OCILobIsOpen(svchp, errhp, locp, flag) |
| OCISvcCtx *svchp; |
| OCIError *errhp; |
| OCILobLocator *locp; |
| boolean *flag; |
| |
| Comments |
| Checks if the LOB locator was opened before. flag is set to TRUE |
| if opened; FALSE otherwise |
| |
| |
| Parameters |
| svchp (IN) - the service context handle. |
| errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for |
| diagnostic information in the event of an error. |
| locp (IN) - the locator to test for temporary LOB |
| flag(OUT) - TRUE, if the LOB locator points to is open |
| FALSE, if not. |
| |
| OCILobIsTemporary() |
| |
| Name |
| |
| OCI Lob Is Temporary |
| |
| Purpose |
| Tests if this locator points to a temporary LOB |
| |
| Syntax |
| sword OCILobIsTemporary(OCIEnv *envhp, |
| OCIError *errhp, |
| OCILobLocator *locp, |
| boolean *is_temporary); |
| |
| Comments |
| Tests the locator to determine if it points to a temporary LOB. |
| If so, is_temporary is set to TRUE. If not, is_temporary is set |
| to FALSE. |
| |
| Parameters |
| envhp (IN) - the environment handle. |
| errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for |
| diagnostic information in the event of an error. |
| locp (IN) - the locator to test for temporary LOB |
| is_temporary(OUT) - TRUE, if the LOB locator points to a temporary LOB; |
| FALSE, if not. |
| |
| See Also |
| OCILobCreateTemporary, OCILobFreeTemporary |
| |
| |
| OCILobLoadFromFile() |
| |
| Name |
| OCI Lob Load From File |
| |
| Purpose |
| Load/copy all or a portion of the file into an internal LOB. |
| |
| Syntax |
| sword OCILobLoadFromFile ( OCISvcCtx *svchp, |
| OCIError *errhp, |
| OCILobLocator *dst_locp, |
| OCILobLocator *src_filep, |
| ub4 amount, |
| ub4 dst_offset, |
| ub4 src_offset ); |
| |
| Comments |
| Loads/copies a portion or all of a file value into an internal LOB as |
| specified. The data is copied from the source file to the destination |
| internal LOB (BLOB/CLOB). No character set conversions are performed |
| when copying the bfile data to a clob/nclob. The bfile data must already |
| be in the same character set as the clob/nclob in the database. No |
| error checking is performed to verify this. |
| The source (src_filep) and the destination (dst_locp) LOBs must already exist. |
| If the data already exists at the destination's start position, it is |
| overwritten with the source data. If the destination's start position is |
| beyond the end of the current data, a hole is created from the end of the data |
| to the beginning of the newly written data from the source. The destination |
| LOB is extended to accommodate the newly written data if it extends |
| beyond the current length of the destination LOB. |
| It is an error to extend the destination LOB beyond the maximum length |
| allowed or to try to copy from a NULL LOB. |
| Parameters |
| svchp (IN) - the service context handle. |
| errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for |
| diagnostic information in the event of an error. |
| dst_locp (IN/OUT) - a locator uniquely referencing the destination internal |
| LOB which may be of type blob, clob, or nclob. |
| src_filep (IN/OUT) - a locator uniquely referencing the source BFILE. |
| amount (IN) - the number of bytes to be copied. |
| dst_offset (IN) - this is the absolute offset for the destination LOB. |
| For character LOBs it is the number of characters from the beginning of the |
| LOB at which to begin writing. For binary LOBs it is the number of bytes from |
| the beginning of the lob from which to begin reading. The offset starts at 1. |
| src_offset (IN) - this is the absolute offset for the source BFILE. It is |
| the number of bytes from the beginning of the LOB. The offset starts at 1. |
| |
| See Also |
| OCIErrorGet(), OCILobAppend(), OCILobWrite(), OCILobTrim(), OCILobCopy() |
| |
| OCILobLocatorAssign() |
| |
| Name |
| OCI Lob LOCATOR ASsiGn |
| |
| Purpose |
| Assigns one LOB/FILE locator to another. |
| |
| Syntax |
| sword OCILobLocatorAssign ( OCISvcCtx *svchp, |
| OCIError *errhp, |
| const OCILobLocator *src_locp, |
| OCILobLocator **dst_locpp ); |
| |
| Comments |
| Assign source locator to destination locator. After the assignment, both |
| locators refer to the same LOB data. For internal LOBs, the source locator's |
| LOB data gets copied to the destination locator's LOB data only when the |
| destination locator gets stored in the table. Therefore, issuing a flush of |
| the object containing the destination locator will copy the LOB data. For |
| FILEs only the locator that refers to the OS file is copied to the table. The |
| OS file is not copied. |
| Note : the only difference between this and OCILobAssign is that this takes |
| a OCI service handle pointer instead of a OCI environment handle pointer |
| |
| Parameters |
| svchp (IN/OUT) - OCI service handle initialized in object mode. |
| errhp (IN/OUT) - The OCI error handle. If there is an error, it is recorded |
| in errhp and this function returns OCI_ERROR. Diagnostic information can be |
| obtained by calling OCIErrorGet(). |
| src_locp (IN) - LOB locator to copy from. |
| dst_locpp (IN/OUT) - LOB locator to copy to. The caller must allocate space |
| for the OCILobLocator by calling OCIDescriptorAlloc(). |
| |
| See also |
| OCIErrorGet() |
| OCILobIsEqual() |
| OCILobLocatorIsInit() |
| OCILobAssign() |
| |
| |
| |
| |
| OCILobLocatorIsInit() |
| |
| Name |
| OCI LOB locator is initialized? |
| |
| Purpose |
| Tests to see if a given LOB locator is initialized. |
| |
| Syntax |
| sword OCILobLocatorIsInit ( OCIEnv *envhp, |
| OCIError *errhp, |
| const OCILobLocator *locp, |
| boolean *is_initialized ); |
| |
| Comments |
| Tests to see if a given LOB locator is initialized. |
| |
| Parameters |
| envhp (IN/OUT) - OCI environment handle initialized in object mode. |
| errhp (IN/OUT) - error handle. The OCI error handle. If there is an error, it |
| is recorded in err and this function returns OCI_ERROR. Diagnostic |
| information can be obtained by calling OCIErrorGet(). |
| locp (IN) - the LOB locator being tested |
| is_initialized (OUT) - returns TRUE if the given LOB locator is initialized; |
| FALSE if it is not. |
| |
| See also |
| OCIErrorGet, OCILobIsEqual |
| |
| |
| |
| |
| OCILobRead() |
| |
| Name |
| OCI Lob/File ReaD |
| |
| Purpose |
| Reads a portion of a LOB/FILE as specified by the call into a buffer. |
| |
| Syntax |
| sword OCILobRead ( OCISvcCtx *svchp, |
| OCIError *errhp, |
| OCILobLocator *locp, |
| ub4 offset, |
| ub4 *amtp, |
| void *bufp, |
| ub4 bufl, |
| void *ctxp, |
| OCICallbackLobRead cbfp, |
| ub2 csid, |
| ub1 csfrm ); |
| |
| Comments |
| Reads a portion of a LOB/FILE as specified by the call into a buffer. Data |
| read from a hole is returned as 0s. It is an error to try to read from a NULL |
| LOB/FILE. The OS FILE must already exist on the server and must have been |
| opened using the input locator. Oracle must hav epermission to read the OS |
| file and user must have read permission on the directory object. |
| |
| Parameters |
| svchp (IN/OUT) - the service context handle. |
| errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for |
| diagnostic information in the event of an error. |
| locp (IN/OUT) - a LOB locator that uniquely references a LOB. |
| offset (IN) - On input, it is the absolute offset, for character LOBs in the |
| number of characters from the beginning of the LOB, for binary LOBs it is the |
| number of bytes. Starts from 1. |
| amtp (IN/OUT) - On input, the number of character or bytes to be read. On |
| output, the actual number of bytes or characters read. |
| If the amount of bytes to be read is larger than the buffer length it is |
| assumed that the LOB is being read in a streamed mode. On input if this value |
| is 0, then the data shall be read in streamed mode from the LOB until the end |
| of LOB. If the data is read in pieces, *amtp always contains the length of |
| the last piece read. If a callback function is defined, then this callback |
| function will be invoked each time bufl bytes are read off the pipe. Each |
| piece will be written into bufp. |
| If the callback function is not defined, then OCI_NEED_DATA error code will |
| be returned. The application must invoke the LOB read over and over again to |
| read more pieces of the LOB until the OCI_NEED_DATA error code is not |
| returned. The buffer pointer and the length can be different in each call |
| if the pieces are being read into different sizes and location. |
| bufp (IN) - the pointer to a buffer into which the piece will be read. The |
| length of the allocated memory is assumed to be bufl. |
| bufl (IN) - the length of the buffer in octets. |
| ctxp (IN) - the context for the call back function. Can be NULL. |
| cbfp (IN) - a callback that may be registered to be called for each piece. If |
| this is NULL, then OCI_NEED_DATA will be returned for each piece. |
| The callback function must return OCI_CONTINUE for the read to continue. |
| If any other error code is returned, the LOB read is aborted. |
| ctxp (IN) - the context for the call back function. Can be NULL. |
| bufp (IN) - a buffer pointer for the piece. |
| len (IN) - the length of length of current piece in bufp. |
| piece (IN) - which piece - OCI_FIRST_PIECE, OCI_NEXT_PIECE or |
| OCI_LAST_PIECE. |
| csid - the character set ID of the buffer data |
| csfrm - the character set form of the buffer data |
| |
| Related Functions |
| OCIErrorGet, OCILobWrite, OCILobFileOpen, OCILobFileSetName, CREATE DIRECTORY |
| |
| |
| |
| |
| OCILobTrim() |
| |
| Name |
| |
| OCI Lob Trim |
| |
| Purpose |
| Trims the lob value to a shorter length |
| |
| Syntax |
| sword OCILobTrim ( OCISvcCtx *svchp, |
| OCIError *errhp, |
| OCILobLocator *locp, |
| ub4 newlen ); |
| |
| Comments |
| Truncates LOB data to a specified shorter length. |
| |
| Parameters |
| svchp (IN) - the service context handle. |
| errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for |
| diagnostic information in the event of an error. |
| locp (IN/OUT) - a LOB locator that uniquely references the LOB. This locator |
| must be a locator that was obtained from the server specified by svchp. |
| newlen (IN) - the new length of the LOB data, which must be less than or equal |
| to the current length. |
| |
| Related Functions |
| OCIErrorGet, OCILobWrite, OCiLobErase, OCILobAppend, OCILobCopy |
| |
| |
| |
| |
| |
| OCILobWrite() |
| |
| Name |
| OCI Lob Write |
| |
| Purpose |
| Writes a buffer into a LOB |
| |
| Syntax |
| sword OCILobWrite ( OCISvcCtx *svchp, |
| OCIError *errhp, |
| OCILobLocator *locp, |
| ub4 offset, |
| ub4 *amtp, |
| void *bufp, |
| ub4 buflen, |
| ub1 piece, |
| void *ctxp, |
| OCICallbackLobWrite (cbfp) |
| ( |
| void *ctxp, |
| void *bufp, |
| ub4 *lenp, |
| ub1 *piecep ) |
| ub2 csid |
| ub1 csfrm ); |
| |
| |
| Comments |
| Writes a buffer into a LOB as specified. If LOB data already exists |
| it is overwritten with the data stored in the buffer. |
| The buffer can be written to the LOB in a single piece with this call, or |
| it can be provided piecewise using callbacks or a standard polling method. |
| If this value of the piece parameter is OCI_FIRST_PIECE, data must be |
| provided through callbacks or polling. |
| If a callback function is defined in the cbfp parameter, then this callback |
| function will be invoked to get the next piece after a piece is written to |
| the pipe. Each piece will be written from bufp. |
| If no callback function is defined, then OCILobWrite() returns the |
| OCI_NEED_DATA error code. The application must all OCILobWrite() again |
| to write more pieces of the LOB. In this mode, the buffer pointer and the |
| length can be different in each call if the pieces are of different sizes and |
| from different locations. A piece value of OCI_LAST_PIECE terminates the |
| piecewise write. |
| |
| Parameters |
| svchp (IN/OUT) - the service context handle. |
| errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for |
| diagnostic information in the event of an error. |
| locp (IN/OUT) - a LOB locator that uniquely references a LOB. |
| offset (IN) - On input, it is the absolute offset, for character LOBs in |
| the number of characters from the beginning of the LOB, for binary LOBs it |
| is the number of bytes. Starts at 1. |
| bufp (IN) - the pointer to a buffer from which the piece will be written. The |
| length of the allocated memory is assumed to be the value passed in bufl. |
| Even if the data is being written in pieces, bufp must contain the first |
| piece of the LOB when this call is invoked. |
| bufl (IN) - the length of the buffer in bytes. |
| Note: This parameter assumes an 8-bit byte. If your platform uses a |
| longer byte, the value of bufl must be adjusted accordingly. |
| piece (IN) - which piece of the buffer is being written. The default value for |
| this parameter is OCI_ONE_PIECE, indicating the buffer will be written in a |
| single piece. |
| The following other values are also possible for piecewise or callback mode: |
| OCI_FIRST_PIECE, OCI_NEXT_PIECE and OCI_LAST_PIECE. |
| amtp (IN/OUT) - On input, takes the number of character or bytes to be |
| written. On output, returns the actual number of bytes or characters written. |
| If the data is written in pieces, *amtp will contain the total length of the |
| pieces written at the end of the call (last piece written) and is undefined in |
| between. |
| (Note it is different from the piecewise read case) |
| ctxp (IN) - the context for the call back function. Can be NULL. |
| cbfp (IN) - a callback that may be registered to be called for each piece in |
| a piecewise write. If this is NULL, the standard polling method will be used. |
| The callback function must return OCI_CONTINUE for the write to continue. |
| If any other error code is returned, the LOB write is aborted. The |
| callback takes the following parameters: |
| ctxp (IN) - the context for the call back function. Can be NULL. |
| bufp (IN/OUT) - a buffer pointer for the piece. |
| lenp (IN/OUT) - the length of the buffer (in octets) and the length of |
| current piece in bufp (out octets). |
| piecep (OUT) - which piece - OCI_NEXT_PIECE or OCI_LAST_PIECE. |
| csid - the character set ID of the buffer data |
| csfrm - the character set form of the buffer data |
| Related Functions |
| |
| OCILobWriteAppend() |
| |
| Name |
| OCI Lob Write Append |
| |
| Purpose |
| Writes data to the end of a LOB value. This call provides the ability |
| to get the length of the data and append it to the end of the LOB in |
| a single round trip to the server. |
| |
| Syntax |
| sword OCILobWriteAppend ( OCISvcCtx *svchp, |
| OCIError *errhp, |
| OCILobLocator *locp, |
| ub4 *amtp, |
| void *bufp, |
| ub4 buflen, |
| ub1 piece, |
| void *ctxp, |
| OCICallbackLobWrite (cbfp) |
| ( |
| void *ctxp, |
| void *bufp, |
| ub4 *lenp, |
| ub1 *piecep ) |
| ub2 csid |
| ub1 csfrm ); |
| |
| |
| Comments |
| Writes a buffer to the end of a LOB as specified. If LOB data already exists |
| it is overwritten with the data stored in the buffer. |
| The buffer can be written to the LOB in a single piece with this call, or |
| it can be provided piecewise using callbacks or a standard polling method. |
| If this value of the piece parameter is OCI_FIRST_PIECE, data must be |
| provided through callbacks or polling. |
| If a callback function is defined in the cbfp parameter, then this callback |
| function will be invoked to get the next piece after a piece is written to the |
| pipe. Each piece will be written from bufp. |
| If no callback function is defined, then OCILobWriteAppend() returns the |
| OCI_NEED_DATA error code. The application must all OCILobWriteAppend() again |
| to write more pieces of the LOB. In this mode, the buffer pointer and the |
| length can be different in each call if the pieces are of different sizes and |
| from different locations. A piece value of OCI_LAST_PIECE terminates the |
| piecewise write. |
| |
| Parameters |
| svchp (IN/OUT) - the service context handle. |
| errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for |
| diagnostic information in the event of an error. |
| locp (IN/OUT) - a LOB locator that uniquely references a LOB. |
| bufp (IN) - the pointer to a buffer from which the piece will be written. The |
| length of the allocated memory is assumed to be the value passed in bufl. Even |
| if the data is being written in pieces, bufp must contain the first piece of |
| the LOB when this call is invoked. |
| bufl (IN) - the length of the buffer in bytes. |
| Note: This parameter assumes an 8-bit byte. If your platform uses a |
| longer byte, the value of bufl must be adjusted accordingly. |
| piece (IN) - which piece of the buffer is being written. The default value for |
| this parameter is OCI_ONE_PIECE, indicating the buffer will be written in a |
| single piece. |
| The following other values are also possible for piecewise or callback mode: |
| OCI_FIRST_PIECE, OCI_NEXT_PIECE and OCI_LAST_PIECE. |
| amtp (IN/OUT) - On input, takes the number of character or bytes to be |
| written. On output, returns the actual number of bytes or characters written. |
| If the data is written in pieces, *amtp will contain the total length of the |
| pieces written at the end of the call (last piece written) and is undefined in |
| between. |
| (Note it is different from the piecewise read case) |
| ctxp (IN) - the context for the call back function. Can be NULL. |
| cbfp (IN) - a callback that may be registered to be called for each piece in a |
| piecewise write. If this is NULL, the standard polling method will be used. |
| The callback function must return OCI_CONTINUE for the write to continue. |
| If any other error code is returned, the LOB write is aborted. The |
| callback takes the following parameters: |
| ctxp (IN) - the context for the call back function. Can be NULL. |
| bufp (IN/OUT) - a buffer pointer for the piece. |
| lenp (IN/OUT) - the length of the buffer (in octets) and the length of |
| current piece in bufp (out octets). |
| piecep (OUT) - which piece - OCI_NEXT_PIECE or OCI_LAST_PIECE. |
| csid - the character set ID of the buffer data |
| csfrm - the character set form of the buffer data |
| Related Functions |
| |
| |
| |
| |
| OCILobGetStorageLimit() |
| |
| Name |
| OCI Lob Get Storage Limit |
| |
| Purpose |
| To get the maximum Length of a LOB in bytes that can be stored in the database. |
| |
| Syntax |
| sword OCILobGetStorageLimit ( OCISvcCtx *svchp, |
| OCIError *errhp, |
| OCILobLocator *locp, |
| oraub8 *limitp); |
| |
| |
| Comments |
| With unlimited size LOB support the limit for a LOB is no longer restricted |
| to 4GB. |
| This interface should be used to get the actual limit for storing data for |
| a specific |
| LOB locator. Note that if the compatibality is set to 9.2 or older the limit |
| would still be 4GB. |
| |
| Parameters |
| svchp (IN/OUT) - the service context handle. |
| errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for |
| diagnostic information in the event of an error. |
| locp (IN/OUT) - a LOB locator that uniquely references a LOB. |
| limitp (OUT) - The storage limit for a LOB in bytes. |
| Related Functions |
| |
| |
| |
| |
| OCILobGetOptions() |
| |
| Name |
| OCI Lob Get Options |
| |
| Purpose |
| To get the current options set for the given SecureFile. |
| |
| Syntax |
| sword OCILobGetOptions ( OCISvcCtx *svchp, |
| OCIError *errhp, |
| OCILobLocator *locp, |
| ub4 optypes, |
| void *optionsp, |
| ub4 *optionslenp, |
| ub4 mode); |
| |
| |
| Comments |
| This function only works on SecureFiles. All others will get an error. |
| |
| Parameters |
| svchp (IN/OUT) - the service context handle. |
| errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for |
| diagnostic information in the event of an error. |
| locp (IN/OUT) - a LOB locator that uniquely references a LOB. |
| optypes (IN) - the types of options flags to be retrieved. |
| optionsp (OUT) - the options flags or value for the given types. |
| optionslenp (IN/OUT) - the length of option_value buffer |
| mode (IN) - for future use (pass 0 for now). |
| Related Functions |
| OCISetOptions() |
| |
| OCILobSetOptions() |
| |
| Name |
| OCI Lob Set Options |
| |
| Purpose |
| To set the options for the given SecureFile Lob. |
| |
| Syntax |
| sword OCILobSetOptions ( OCISvcCtx *svchp, |
| OCIError *errhp, |
| OCILobLocator *locp, |
| ub4 optypes, |
| void *optionsp, |
| ub4 optionslen, |
| ub4 mode); |
| |
| |
| Comments |
| This function only works on SecureFile Lobs. All others will get an error. |
| |
| Parameters |
| svchp (IN/OUT) - the service context handle. |
| errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for |
| diagnostic information in the event of an error. |
| locp (IN/OUT) - a LOB locator that uniquely references a LOB. |
| optypes (IN) - the types of options flags to be set. |
| optionsp (IN) - the options flags or value to be set for the given types. |
| optionslen (IN) - then length of option_value buffer |
| mode (IN) - for future use (pass 0 for now). |
| Related Functions |
| OCILobGetOptions() |
| |
| OCILobGetContentType() |
| |
| Name |
| OCI Lob Get Content Type |
| |
| Purpose |
| To get the current contenttype set for the given SecureFile. |
| |
| Syntax |
| sword OCILobGetContentType (OCISvcCtx *svchp, |
| OCIError *errhp, |
| OCILobLocator *locp, |
| oratext *contenttypep, |
| ub4 *contenttypelenp, |
| ub4 mode); |
| |
| |
| Comments |
| This function only works on SecureFiles. All others will get an error. |
| If the securefile does not have a contenttype associated with it, |
| the contenttype length (= *contenttypelenp) is returned as 0 without |
| modifying the buffer contenttypep. |
| Parameters |
| svchp (IN/OUT) - the service context handle. |
| errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for |
| diagnostic information in the event of an error. |
| locp (IN/OUT) - a LOB locator that uniquely references a LOB. |
| contenttypep(IN/OUT)- pointer to the buffer where the contenttype is stored |
| after successful execution. |
| The caller needs to allocate the buffer before calling |
| this function. The size of the allocated buffer should |
| be >= OCI_LOB_CONTENTTYPE_MAXSIZE bytes |
| contenttypelenp(IN/OUT)- The caller should set this field to the size |
| of contenttypep buffer. |
| After the call successfully executes, it will hold the |
| size of the contenttype returned. |
| mode (IN) - for future use (pass 0 for now). |
| Related Functions |
| OCISetContentType() |
| |
| OCILobSetContentType() |
| |
| Name |
| OCI Lob Set Content Type |
| |
| Purpose |
| To set the contenttype for the given SecureFile Lob. |
| |
| Syntax |
| sword OCILobSetContentType (OCISvcCtx *svchp, |
| OCIError *errhp, |
| OCILobLocator *locp, |
| const oratext *contenttypep, |
| ub4 contenttypelen, |
| ub4 mode); |
| |
| |
| Comments |
| This function only works on SecureFiles. All others will get an error. |
| To clear an existing contenttype set on a securefile, the user will |
| invoke OCILobSetContentType API with contenttypep set to (oratext *)0, |
| and contenttypelen set to 0. |
| Parameters |
| svchp (IN/OUT) - the service context handle. |
| errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for |
| diagnostic information in the event of an error. |
| locp (IN/OUT) - a LOB locator that uniquely references a LOB. |
| contenttypep (IN) - the contenttype to be set for the given LOB. |
| contenttypelen(IN) - the size of contenttype in bytes. The size of the |
| contenttype should be <= OCI_LOB_CONTENTTYPE_MAXSIZE |
| bytes. |
| mode (IN) - for future use (pass 0 for now). |
| Related Functions |
| OCILobGetContentType() |
| |
| |
| OCILogoff() |
| Name |
| OCI simplified Logoff |
| Purpose |
| This function is used to terminate a session created with OCILogon() or |
| OCILogon2(). |
| Syntax |
| sword OCILogoff ( OCISvcCtx *svchp |
| OCIError *errhp ); |
| Comments |
| This call is used to terminate a session which was created with OCILogon() or |
| OCILogon2(). |
| This call implicitly deallocates the server, authentication, and service |
| context handles. |
| Note: For more information on logging on and off in an application, |
| refer to the section "Application Initialization, Connection, and |
| Authorization" on page 2-16. |
| Parameters |
| svchp (IN) - the service context handle which was used in the call to |
| OCILogon() or OCILogon2(). |
| errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for |
| diagnostic information in the event of an error. |
| See Also |
| OCILogon(), OCILogon2(). |
| |
| |
| |
| |
| |
| |
| OCILogon() |
| Name |
| OCI Service Context Logon |
| Purpose |
| This function is used to create a simple logon session. |
| Syntax |
| sword OCILogon ( OCIEnv *envhp, |
| OCIError *errhp, |
| OCISvcCtx *svchp, |
| const OraText *username, |
| ub4 uname_len, |
| const OraText *password, |
| ub4 passwd_len, |
| const OraText *dbname, |
| ub4 dbname_len ); |
| Comments |
| This function is used to create a simple logon session for an application. |
| Note: Users requiring more complex session (e.g., TP monitor |
| applications) should refer to the section "Application Initialization, |
| Connection, and Authorization" on page 2-16. |
| This call allocates the error and service context handles which are passed to |
| it. This call also implicitly allocates server and authentication handles |
| associated with the session. These handles can be retrieved by calling |
| OCIAttrGet() on the service context handle. |
| Parameters |
| envhp (IN) - the OCI environment handle. |
| errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for |
| diagnostic information in the event of an error. |
| svchp (OUT) - the service context pointer. |
| username (IN) - the username. |
| uname_len (IN) - the length of username. |
| password (IN) - the user's password. |
| passwd_len (IN) - the length of password. |
| dbname (IN) - the name of the database to connect to. |
| dbname_len (IN) - the length of dbname. |
| See Also |
| OCILogoff() |
| |
| |
| |
| |
| |
| OCILogon2() |
| Name |
| OCI Service Context Logon |
| Purpose |
| This function is used to create a logon session in connection pooling mode. |
| Syntax |
| sword OCILogon2 ( OCIEnv *envhp, |
| OCIError *errhp, |
| OCISvcCtx **svchp, |
| const OraText *username, |
| ub4 uname_len, |
| const OraText *password, |
| ub4 passwd_len, |
| const OraText *dbname, |
| ub4 dbname_len, |
| ub4 mode); |
| Comments |
| This function is used to create a simple logon session for an application in |
| Connection Pooling mode. The valid values for mode are currently OCI_POOL and |
| OCI_DEFAULT. Call to this function with OCI_DEFAULT mode is equivalent to |
| OCILogon() call. |
| This call allocates the error and service context handles which are passed to |
| it. This call also implicitly allocates server and authentication handles |
| associated with the session. These handles can be retrieved by calling |
| OCIAttrGet() on the service context handle. This call assumes that |
| OCIConnectionPoolCreate() has already been called for the same dbname. |
| Parameters |
| envhp (IN) - the OCI environment handle. |
| errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for |
| diagnostic information in the event of an error. |
| svchp (OUT) - the service context pointer. |
| username (IN) - the username. |
| uname_len (IN) - the length of username. |
| password (IN) - the user's password. If this is null, it is assumed that a |
| proxy session has to be created and the required grants on |
| the database are already done. |
| passwd_len (IN) - the length of password. |
| dbname (IN) - the name of the database to connect to. |
| dbname_len (IN) - the length of dbname. |
| mode (IN) - the mode for doing the server attach. Should be OCI_POOL for |
| using Connection Pooling. |
| |
| |
| See Also |
| OCILogoff() |
| |
| |
| |
| |
| |
| OCIMemoryFree() |
| Name |
| OCI FREE Memory |
| Purpose |
| Frees up storage associated with the pointer. |
| Syntax |
| void OCIMemoryFree ( const OCIStmt *stmhp, |
| void *memptr); |
| Comments |
| Frees up dynamically allocated data pointers associated with the pointer using |
| either the default memory free function or the registered memory free |
| function, as the case may be. |
| A user-defined memory free function can be registered during the initial call |
| to OCIInitialize(). |
| This call is always successful. |
| Parameters |
| stmhp (IN) - statement handle which returned this data buffer. |
| memptr (IN) - pointer to data allocated by the client library. |
| Related Functions |
| OCIInitialize() |
| |
| |
| |
| |
| |
| OCIParamGet() |
| Name |
| OCI Get PARaMeter |
| Purpose |
| Returns a descriptor of a parameter specified by position in the describe |
| handle or statement handle. |
| Syntax |
| sword OCIParamGet ( const void *hndlp, |
| ub4 htype, |
| OCIError *errhp, |
| void **parmdpp, |
| ub4 pos ); |
| Comments |
| This call returns a descriptor of a parameter specified by position in the |
| describe handle or statement handle. Parameter descriptors are always |
| allocated internally by the OCI library. They are read-only. |
| OCI_NO_DATA may be returned if there are no parameter descriptors for this |
| position. |
| See Appendix B for more detailed information about parameter descriptor |
| attributes. |
| Parameters |
| hndlp (IN) - a statement handle or describe handle. The OCIParamGet() |
| function will return a parameter descriptor for this handle. |
| htype (IN) - the type of the handle passed in the handle parameter. Valid |
| types are OCI_HTYPE_DESCRIBE, for a describe handle OCI_HTYPE_STMT, for a |
| statement handle |
| errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for |
| diagnostic information in the event of an error. |
| parmdpp (OUT) - a descriptor of the parameter at the position given in the pos |
| parameter. |
| pos (IN) - position number in the statement handle or describe handle. A |
| parameter descriptor will be returned for this position. |
| Note: OCI_NO_DATA may be returned if there are no parameter |
| descriptors for this position. |
| Related Functions |
| OCIAttrGet(), OCIAttrSet() |
| |
| |
| |
| |
| |
| OCIParamSet() |
| Name |
| OCI Parameter Set in handle |
| Purpose |
| Used to set a complex object retrieval descriptor into a complex object |
| retrieval handle. |
| Syntax |
| sword OCIParamGet ( void *hndlp, |
| ub4 htyp, |
| OCIError *errhp, |
| const void *dscp, |
| ub4 dtyp, |
| ub4 pos ); |
| Comments |
| This call sets a given complex object retrieval descriptor into a complex |
| object retrieval handle. |
| The handle must have been previously allocated using OCIHandleAlloc(), and |
| the descriptor must have been previously allocated using OCIDescAlloc(). |
| Attributes of the descriptor are set using OCIAttrSet(). |
| Parameters |
| hndlp (IN/OUT) - handle pointer. |
| htype (IN) - handle type. |
| errhp (IN/OUT) - error handle. |
| dscp (IN) - complex object retrieval descriptor pointer. |
| dtyp (IN) - |
| pos (IN) - position number. |
| See Also |
| |
| |
| |
| |
| |
| OCIPasswordChange() |
| Name |
| OCI Change PassWord |
| Purpose |
| This call allows the password of an account to be changed. |
| Syntax |
| sword OCIPasswordChange ( OCISvcCtx *svchp, |
| OCIError *errhp, |
| const OraText *user_name, |
| ub4 usernm_len, |
| const OraText *opasswd, |
| ub4 opasswd_len, |
| const OraText *npasswd, |
| sb4 npasswd_len, |
| ub4 mode); |
| Comments |
| This call allows the password of an account to be changed. This call is |
| similar to OCISessionBegin() with the following differences: |
| If the user authentication is already established, it authenticates |
| the account using the old password and then changes the |
| password to the new password |
| If the user authentication is not established, it establishes a user |
| authentication and authenticates the account using the old |
| password, then changes the password to the new password. |
| This call is useful when the password of an account is expired and |
| OCISessionBegin() returns an error or warning which indicates that the |
| password has expired. |
| Parameters |
| svchp (IN/OUT) - a handle to a service context. The service context handle |
| must be initialized and have a server context handle associated with it. |
| errhp (IN) - an error handle which can be passed to OCIErrorGet() for |
| diagnostic information in the event of an error. |
| user_name (IN) - specifies the user name. It points to a character string, |
| whose length is specified in usernm_len. This parameter must be NULL if the |
| service context has been initialized with an authentication handle. |
| usernm_len (IN) - the length of the user name string specified in user_name. |
| For a valid user name string, usernm_len must be non-zero. |
| opasswd (IN) - specifies the user's old password. It points to a character |
| string, whose length is specified in opasswd_len . |
| opasswd_len (IN) - the length of the old password string specified in opasswd. |
| For a valid password string, opasswd_len must be non-zero. |
| npasswd (IN) - specifies the user's new password. It points to a character |
| string, whose length is specified in npasswd_len which must be non-zero for a |
| valid password string. If the password complexity verification routine is |
| specified in the user's profile to verify the new password's complexity, the |
| new password must meet the complexity requirements of the verification |
| function. |
| npasswd_len (IN) - then length of the new password string specified in |
| npasswd. For a valid password string, npasswd_len must be non-zero. |
| mode - pass as OCI_DEFAULT. |
| Related Functions |
| OCISessionBegin() |
| |
| |
| ----------------------------------OCIReset------------------------------------ |
| |
| |
| OCIReset() |
| Name |
| OCI Reset |
| Purpose |
| Resets the interrupted asynchronous operation and protocol. Must be called |
| if a OCIBreak call had been issued while a non-blocking operation was in |
| progress. |
| Syntax |
| sword OCIReset ( void *hndlp, |
| OCIError *errhp); |
| Comments |
| This call is called in non-blocking mode ONLY. Resets the interrupted |
| asynchronous operation and protocol. Must be called if a OCIBreak call |
| had been issued while a non-blocking operation was in progress. |
| Parameters |
| hndlp (IN) - the service context handle or the server context handle. |
| errhp (IN) - an error handle which can be passed to OCIErrorGet() for |
| diagnostic information in the event of an error. |
| Related Functions |
| |
| |
| OCIResultSetToStmt() |
| Name |
| OCI convert Result Set to Statement Handle |
| Purpose |
| Converts a descriptor to statement handle for fetching rows. |
| Syntax |
| sword OCIResultSetToStmt ( OCIResult *rsetdp, |
| OCIError *errhp ); |
| Comments |
| Converts a descriptor to statement handle for fetching rows. |
| A result set descriptor can be allocated with a call to OCIDescAlloc(). |
| Parameters |
| rsetdp (IN/OUT) - a result set descriptor pointer. |
| errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for |
| diagnostic information in the event of an error. |
| Related Functions |
| OCIDescAlloc() |
| |
| |
| |
| |
| OCIServerAttach() |
| Name |
| OCI ATtaCH to server |
| Purpose |
| Creates an access path to a data source for OCI operations. |
| Syntax |
| sword OCIServerAttach ( OCIServer *srvhp, |
| OCIError *errhp, |
| const OraText *dblink, |
| sb4 dblink_len, |
| ub4 mode); |
| Comments |
| This call is used to create an association between an OCI application and a |
| particular server. |
| This call initializes a server context handle, which must have been previously |
| allocated with a call to OCIHandleAlloc(). |
| The server context handle initialized by this call can be associated with a |
| service context through a call to OCIAttrSet(). Once that association has been |
| made, OCI operations can be performed against the server. |
| If an application is operating against multiple servers, multiple server |
| context handles can be maintained. OCI operations are performed against |
| whichever server context is currently associated with the service context. |
| Parameters |
| srvhp (IN/OUT) - an uninitialized server context handle, which gets |
| initialized by this call. Passing in an initialized server handle causes an |
| error. |
| errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for |
| diagnostic information in the event of an error. |
| dblink (IN) - specifies the database (server) to use. This parameter points to |
| a character string which specifies a connect string or a service point. If the |
| connect string is NULL, then this call attaches to the default host. The length |
| of connstr is specified in connstr_len. The connstr pointer may be freed by the |
| caller on return. |
| dblink_len (IN) - the length of the string pointed to by connstr. For a valid |
| connect string name or alias, connstr_len must be non-zero. |
| mode (IN) - specifies the various modes of operation. For release 8.0, pass as |
| OCI_DEFAULT - in this mode, calls made to the server on this server context |
| are made in blocking mode. |
| Example |
| See the description of OCIStmtPrepare() on page 13-96 for an example showing |
| the use of OCIServerAttach(). |
| Related Functions |
| OCIServerDetach() |
| |
| |
| |
| OCIServerDetach() |
| Name |
| OCI DeTaCH server |
| Purpose |
| Deletes an access to a data source for OCI operations. |
| Syntax |
| sword OCIServerDetach ( OCIServer *svrhp, |
| OCIError *errhp, |
| ub4 mode); |
| Comments |
| This call deletes an access to data source for OCI operations, which was |
| established by a call to OCIServerAttach(). |
| Parameters |
| srvhp (IN) - a handle to an initialized server context, which gets reset to |
| uninitialized state. The handle is not de-allocated. |
| errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for |
| diagnostic information in the event of an error. |
| mode (IN) - specifies the various modes of operation. The only valid mode is |
| OCI_DEFAULT for the default mode. |
| Related Functions |
| OCIServerAttach() |
| |
| |
| |
| OCIServerVersion() |
| Name |
| OCI VERSion |
| Purpose |
| Returns the version string of the Oracle server. |
| Syntax |
| sword OCIServerVersion ( void *hndlp, |
| OCIError *errhp, |
| OraText *bufp, |
| ub4 bufsz |
| ub1 hndltype ); |
| Comments |
| This call returns the version string of the Oracle server. |
| For example, the following might be returned as the version string if your |
| application is running against a 7.3.2 server: |
| Oracle7 Server Release 7.3.2.0.0 - Production Release |
| PL/SQL Release 2.3.2.0.0 - Production |
| CORE Version 3.5.2.0.0 - Production |
| TNS for SEQUENT DYNIX/ptx: Version 2.3.2.0.0 - Production |
| NLSRTL Version 3.2.2.0.0 - Production |
| |
| Parameters |
| hndlp (IN) - the service context handle or the server context handle. |
| errhp (IN) - an error handle which can be passed to OCIErrorGet() for |
| diagnostic information in the event of an error. |
| bufp (IN) - the buffer in which the version information is returned. |
| bufsz (IN) - the length of the buffer. |
| hndltype (IN) - the type of handle passed to the function. |
| Related Functions |
| |
| |
| |
| |
| |
| OCISessionBegin() |
| Name |
| OCI Session Begin and authenticate user |
| Purpose |
| Creates a user authentication and begins a user session for a given server. |
| Syntax |
| sword OCISessionBegin ( OCISvcCtx *svchp, |
| OCIError *errhp, |
| OCISession *usrhp, |
| ub4 credt, |
| ub4 mode); |
| |
| Comments |
| For Oracle8, OCISessionBegin() must be called for any given server handle |
| before requests can be made against it. Also, OCISessionBegin() only supports |
| authenticating the user for access to the Oracle server specified by the |
| server handle in the service context. In other words, after OCIServerAttach() |
| is called to initialize a server handle, OCISessionBegin() must be called to |
| authenticate the user for that given server. |
| When OCISessionBegin() is called for the first time for the given server |
| handle, the initialized authentication handle is called a primary |
| authentication context. A primary authentication context may not be created |
| with the OCI_MIGRATE mode. Also, only one primary authentication context can |
| be created for a given server handle and the primary authentication context c |
| an only ever be used with that server handle. If the primary authentication |
| context is set in a service handle with a different server handle, then an |
| error will result. |
| After OCISessionBegin() has been called for the server handle, and the primary |
| authentication context is set in the service handle, OCISessionBegin() may be |
| called again to initialize another authentication handle with different (or |
| the same) credentials. When OCISessionBegin() is called with a service handle |
| set with a primary authentication context, the returned authentication context |
| in authp is called a user authentication context. As many user authentication |
| contexts may be initialized as desired. |
| User authentication contexts may be created with the OCI_MIGRATE mode. |
| If the OCI_MIGRATE mode is not specified, then the user authentication |
| context can only ever be used with the same server handle set in svchp. If |
| OCI_MIGRATE mode is specified, then the user authentication may be set |
| with different server handles. However, the user authentication context is |
| restricted to use with only server handles which resolve to the same database |
| instance and that have equivalent primary authentication contexts. Equivalent |
| authentication contexts are those which were authenticated as the same |
| database user. |
| OCI_SYSDBA, OCI_SYSOPER, OCI_SYSASM, and OCI_PRELIM_AUTH may only be used |
| with a primary authentication context. |
| To provide credentials for a call to OCISessionBegin(), one of two methods are |
| supported. The first is to provide a valid username and password pair for |
| database authentication in the user authentication handle passed to |
| OCISessionBegin(). This involves using OCIAttrSet() to set the |
| OCI_ATTR_USERNAME and OCI_ATTR_PASSWORD attributes on the |
| authentication handle. Then OCISessionBegin() is called with |
| OCI_CRED_RDBMS. |
| Note: When the authentication handle is terminated using |
| OCISessionEnd(), the username and password attributes remain |
| unchanged and thus can be re-used in a future call to OCISessionBegin(). |
| Otherwise, they must be reset to new values before the next |
| OCISessionBegin() call. |
| The second type of credentials supported are external credentials. No |
| attributes need to be set on the authentication handle before calling |
| OCISessionBegin(). The credential type is OCI_CRED_EXT. This is equivalent |
| to the Oracle7 `connect /' syntax. If values have been set for |
| OCI_ATTR_USERNAME and OCI_ATTR_PASSWORD, then these are |
| ignored if OCI_CRED_EXT is used. |
| Parameters |
| svchp (IN) - a handle to a service context. There must be a valid server |
| handle set in svchp. |
| errhp (IN) - an error handle to the retrieve diagnostic information. |
| usrhp (IN/OUT) - a handle to an authentication context, which is initialized |
| by this call. |
| credt (IN) - specifies the type of credentials to use for authentication. |
| Valid values for credt are: |
| OCI_CRED_RDBMS - authenticate using a database username and |
| password pair as credentials. The attributes OCI_ATTR_USERNAME |
| and OCI_ATTR_PASSWORD should be set on the authentication |
| context before this call. |
| OCI_CRED_EXT - authenticate using external credentials. No username |
| or password is provided. |
| mode (IN) - specifies the various modes of operation. Valid modes are: |
| OCI_DEFAULT - in this mode, the authentication context returned may |
| only ever be set with the same server context specified in svchp. This |
| establishes the primary authentication context. |
| OCI_MIGRATE - in this mode, the new authentication context may be |
| set in a service handle with a different server handle. This mode |
| establishes the user authentication context. |
| OCI_SYSDBA - in this mode, the user is authenticated for SYSDBA |
| access. |
| OCI_SYSOPER - in this mode, the user is authenticated for SYSOPER |
| access. |
| OCI_SYSASM - in this mode, the user is authenticated for SYSASM |
| access. Note that only an ASM instance can grant SYSASM access. |
| OCI_PRELIM_AUTH - this mode may only be used with OCI_SYSDBA, OCI_SYSASM, |
| or OCI_SYSOPER to authenticate for certain administration tasks. |
| Related Functions |
| OCISessionEnd() |
| |
| |
| |
| |
| |
| |
| OCISessionEnd() |
| Name |
| OCI Terminate user Authentication Context |
| Purpose |
| Terminates a user authentication context created by OCISessionBegin() |
| Syntax |
| sword OCISessionEnd ( OCISvcCtx *svchp, |
| OCIError *errhp, |
| OCISession *usrhp, |
| ub4 mode); |
| |
| Comments |
| The user security context associated with the service context is invalidated |
| by this call. Storage for the authentication context is not freed. The |
| transaction specified by the service context is implicitly committed. The |
| transaction handle, if explicitly allocated, may be freed if not being used. |
| Resources allocated on the server for this user are freed. |
| The authentication handle may be reused in a new call to OCISessionBegin(). |
| Parameters |
| svchp (IN/OUT) - the service context handle. There must be a valid server |
| handle and user authentication handle associated with svchp. |
| errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for |
| diagnostic information in the event of an error. |
| usrhp (IN) - de-authenticate this user. If this parameter is passed as NULL, |
| the user in the service context handle is de-authenticated. |
| mode (IN) - the only valid mode is OCI_DEFAULT. |
| Example |
| In this example, an authentication context is destroyed. |
| Related Functions |
| OCISessionBegin() |
| |
| |
| |
| |
| OCIStmtExecute() |
| Name |
| OCI EXECute |
| Purpose |
| This call associates an application request with a server. |
| Syntax |
| sword OCIStmtExecute ( OCISvcCtx *svchp, |
| OCIStmt *stmtp, |
| OCIError *errhp, |
| ub4 iters, |
| ub4 rowoff, |
| const OCISnapshot *snap_in, |
| OCISnapshot *snap_out, |
| ub4 mode ); |
| Comments |
| This function is used to execute a prepared SQL statement. |
| Using an execute call, the application associates a request with a server. On |
| success, OCI_SUCCESS is returned. |
| If a SELECT statement is executed, the description of the select list follows |
| implicitly as a response. This description is buffered on the client side for |
| describes, fetches and define type conversions. Hence it is optimal to |
| describe a select list only after an execute. |
| Also for SELECT statements, some results are available implicitly. Rows will |
| be received and buffered at the end of the execute. For queries with small row |
| count, a prefetch causes memory to be released in the server if the end of |
| fetch is reached, an optimization that may result in memory usage reduction. |
| Set attribute call has been defined to set the number of rows to be prefetched |
| per result set. |
| For SELECT statements, at the end of the execute, the statement handle |
| implicitly maintains a reference to the service context on which it is |
| executed. It is the user's responsibility to maintain the integrity of the |
| service context. If the attributes of a service context is changed for |
| executing some operations on this service context, the service context must |
| be restored to have the same attributes, that a statement was executed with, |
| prior to a fetch on the statement handle. The implicit reference is maintained |
| until the statement handle is freed or the fetch is cancelled or an end of |
| fetch condition is reached. |
| Note: If output variables are defined for a SELECT statement before a |
| call to OCIStmtExecute(), the number of rows specified by iters will be |
| fetched directly into the defined output buffers and additional rows |
| equivalent to the prefetch count will be prefetched. If there are no |
| additional rows, then the fetch is complete without calling |
| OCIStmtFetch(). |
| The execute call will return errors if the statement has bind data types that |
| are not supported in an Oracle7 server. |
| Parameters |
| svchp (IN/OUT) - service context handle. |
| stmtp (IN/OUT) - an statement handle - defines the statement and the |
| associated data to be executed at the server. It is invalid to pass in a |
| statement handle that has bind of data types only supported in release 8.0 |
| when srvchp points to an Oracle7 server. |
| errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for |
| diagnostic information in the event of an error. If the statement is being |
| batched and it is successful, then this handle will contain this particular |
| statement execution specific errors returned from the server when the batch is |
| flushed. |
| iters (IN) - the number of times this statement is executed for non-Select |
| statements. For Select statements, if iters is non-zero, then defines must |
| have been done for the statement handle. The execution fetches iters rows into |
| these predefined buffers and prefetches more rows depending upon the prefetch |
| row count. This function returns an error if iters=0 for non-SELECT |
| statements. |
| rowoff (IN) - the index from which the data in an array bind is relevant for |
| this multiple row execution. |
| snap_in (IN) - this parameter is optional. if supplied, must point to a |
| snapshot descriptor of type OCI_DTYPE_SNAP. The contents of this descriptor |
| must be obtained from the snap_out parameter of a previous call. The |
| descriptor is ignored if the SQL is not a SELECT. This facility allows |
| multiple service contexts to ORACLE to see the same consistent snapshot of the |
| database's committed data. However, uncommitted data in one context is not |
| visible to another context even using the same snapshot. |
| snap_out (OUT) - this parameter optional. if supplied, must point to a |
| descriptor of type OCI_DTYPE_SNAP. This descriptor is filled in with an |
| opaque representation which is the current ORACLE "system change |
| number" suitable as a snap_in input to a subsequent call to OCIStmtExecute(). |
| This descriptor should not be used any longer than necessary in order to avoid |
| "snapshot too old" errors. |
| mode (IN) - The modes are: |
| If OCI_DEFAULT_MODE, the default mode, is selected, the request is |
| immediately executed. Error handle contains diagnostics on error if any. |
| OCI_EXACT_FETCH - if the statement is a SQL SELECT, this mode is |
| only valid if the application has set the prefetch row count prior to this |
| call. In this mode, the OCI library will get up to the number of rows |
| specified (i.e., prefetch row count plus iters). If the number of rows |
| returned by the query is greater than this value, OCI_ERROR will be |
| returned with ORA-01422 as the implementation specific error in a |
| diagnostic record. If the number of rows returned by the query is |
| smaller than the prefetch row count, OCI_SUCCESS_WITH_INFO will |
| be returned with ORA-01403 as the implementation specific error. The |
| prefetch buffer size is ignored and the OCI library tries to allocate all the |
| space required to contain the prefetched rows. The exact fetch semantics |
| apply to only the top level rows. No more rows can be fetched for this |
| query at the end of the call. |
| OCI_KEEP_FETCH_STATE - the result set rows (not yet fetched) of this |
| statement executed in this transaction will be maintained when the |
| transaction is detached for migration. By default, a query is cancelled |
| when a transaction is detached for migration. This mode is the default |
| mode when connected to a V7 server. |
| Related Functions |
| OCIStmtPrepare() |
| |
| |
| |
| |
| |
| OCIStmtFetch() |
| Name |
| OCI FetCH |
| Purpose |
| Fetches rows from a query. |
| Syntax |
| sword OCIStmtFetch ( OCIStmt *stmtp, |
| OCIError *errhp, |
| ub4 nrows, |
| ub2 orientation, |
| ub4 mode); |
| Comments |
| The fetch call is a local call, if prefetched rows suffice. However, this is |
| transparent to the application. If LOB columns are being read, LOB locators |
| are fetched for subsequent LOB operations to be performed on these locators. |
| Prefetching is turned off if LONG columns are involved. |
| A fetch with nrows set to 0 rows effectively cancels the fetch for this |
| statement. |
| Parameters |
| stmtp (IN) - a statement (application request) handle. |
| errhp (IN) - an error handle which can be passed to OCIErrorGet() for |
| diagnostic information in the event of an error. |
| nrows (IN) - number of rows to be fetched from the current position. |
| orientation (IN) - for release 8.0, the only acceptable value is |
| OCI_FETCH_NEXT, which is also the default value. |
| mode (IN) - for release 8.0, beta-1, the following mode is defined. |
| OCI_DEFAULT - default mode |
| OCI_EOF_FETCH - indicates that it is the last fetch from the result set. |
| If nrows is non-zero, setting this mode effectively cancels fetching after |
| retrieving nrows, otherwise it cancels fetching immediately. |
| Related Functions |
| OCIAttrGet() |
| |
| OCIStmtFetch2() |
| Name |
| OCI FetCH2 |
| Purpose |
| Fetches rows from a query. |
| Syntax |
| sword OCIStmtFetch2 ( OCIStmt *stmtp, |
| OCIError *errhp, |
| ub4 nrows, |
| ub2 orientation, |
| ub4 scrollOffset, |
| ub4 mode); |
| Comments |
| The fetch call works similar to the OCIStmtFetch call with the |
| addition of the fetchOffset parameter. It can be used on any |
| statement handle, whether it is scrollable or not. For a |
| non-scrollable statement handle, the only acceptable value |
| will be OCI_FETCH_NEXT, and the fetchOffset parameter will be |
| ignored. Applications are encouraged to use this new call. |
| |
| A fetchOffset with OCI_FETCH_RELATIVE is equivalent to |
| OCI_FETCH_CURRENT with a value of 0, is equivalent to |
| OCI_FETCH_NEXT with a value of 1, and equivalent to |
| OCI_FETCH_PRIOR with a value of -1. Note that the range of |
| accessible rows is [1,OCI_ATTR_ROW_COUNT] beyond which an |
| error could be raised if sufficient rows do not exist in |
| |
| The fetch call is a local call, if prefetched rows suffice. However, this is |
| transparent to the application. If LOB columns are being read, LOB locators |
| are fetched for subsequent LOB operations to be performed on these locators. |
| Prefetching is turned off if LONG columns are involved. |
| A fetch with nrows set to 0 rows effectively cancels the fetch for this |
| statement. |
| Parameters |
| stmtp (IN) - a statement (application request) handle. |
| errhp (IN) - an error handle which can be passed to OCIErrorGet() for |
| diagnostic information in the event of an error. |
| nrows (IN) - number of rows to be fetched from the current position. |
| It defaults to 1 for orientation OCI_FETCH_LAST. |
| orientation (IN) - The acceptable values are as follows, with |
| OCI_FETCH_NEXT being the default value. |
| OCI_FETCH_CURRENT gets the current row, |
| OCI_FETCH_NEXT gets the next row from the current position, |
| OCI_FETCH_FIRST gets the first row in the result set, |
| OCI_FETCH_LAST gets the last row in the result set, |
| OCI_FETCH_PRIOR gets the previous row from the current row in the result set, |
| OCI_FETCH_ABSOLUTE will fetch the row number (specified by fetchOffset |
| parameter) in the result set using absolute positioning, |
| OCI_FETCH_RELATIVE will fetch the row number (specified by fetchOffset |
| parameter) in the result set using relative positioning. |
| scrollOffset(IN) - offset used with the OCI_FETCH_ABSOLUTE and |
| OCI_FETCH_RELATIVE orientation parameters only. It specify |
| the new current position for scrollable result set. It is |
| ignored for non-scrollable result sets. |
| mode (IN) - for release 8.0, beta-1, the following mode is defined. |
| OCI_DEFAULT - default mode |
| OCI_EOF_FETCH - indicates that it is the last fetch from the result set. |
| If nrows is non-zero, setting this mode effectively cancels fetching after |
| retrieving nrows, otherwise it cancels fetching immediately. |
| Related Functions |
| OCIAttrGet() |
| |
| |
| |
| OCIStmtGetPieceInfo() |
| Name |
| OCI Get Piece Information |
| Purpose |
| Returns piece information for a piecewise operation. |
| Syntax |
| sword OCIStmtGetPieceInfo( const OCIStmt *stmtp, |
| OCIError *errhp, |
| void **hndlpp, |
| ub4 *typep, |
| ub1 *in_outp, |
| ub4 *iterp, |
| ub4 *idxp, |
| ub1 *piecep ); |
| |
| Comments |
| When an execute/fetch call returns OCI_NEED_DATA to get/return a |
| dynamic bind/define value or piece, OCIStmtGetPieceInfo() returns the |
| relevant information: bind/define handle, iteration or index number and |
| which piece. |
| See the section "Runtime Data Allocation and Piecewise Operations" on page |
| 5-16 for more information about using OCIStmtGetPieceInfo(). |
| Parameters |
| stmtp (IN) - the statement when executed returned OCI_NEED_DATA. |
| errhp (OUT) - an error handle which can be passed to OCIErrorGet() for |
| diagnostic information in the event of an error. |
| hndlpp (OUT) - returns a pointer to the bind or define handle of the bind or |
| define whose runtime data is required or is being provided. |
| typep (OUT) - the type of the handle pointed to by hndlpp: OCI_HTYPE_BIND |
| (for a bind handle) or OCI_HTYPE_DEFINE (for a define handle). |
| in_outp (OUT) - returns OCI_PARAM_IN if the data is required for an IN bind |
| value. Returns OCI_PARAM_OUT if the data is available as an OUT bind |
| variable or a define position value. |
| iterp (OUT) - returns the row number of a multiple row operation. |
| idxp (OUT) - the index of an array element of a PL/SQL array bind operation. |
| piecep (OUT) - returns one of the following defined values - |
| OCI_ONE_PIECE, OCI_FIRST_PIECE, OCI_NEXT_PIECE and |
| OCI_LAST_PIECE. The default value is always OCI_ONE_PIECE. |
| Related Functions |
| OCIAttrGet(), OCIAttrGet(), OCIStmtExecute(), OCIStmtFetch(), |
| OCIStmtSetPieceInfo() |
| |
| |
| |
| |
| OCIStmtPrepare() |
| Name |
| OCI Statement REQuest |
| Purpose |
| This call defines the SQL/PLSQL statement to be executed. |
| Syntax |
| sword OCIStmtPrepare ( OCIStmt *stmtp, |
| OCIError *errhp, |
| const OraText *stmt, |
| ub4 stmt_len, |
| ub4 language, |
| ub4 mode); |
| Comments |
| This call is used to prepare a SQL or PL/SQL statement for execution. The |
| OCIStmtPrepare() call defines an application request. |
| This is a purely local call. Data values for this statement initialized in |
| subsequent bind calls will be stored in a bind handle which will hang off this |
| statement handle. |
| This call does not create an association between this statement handle and any |
| particular server. |
| See the section "Preparing Statements" on page 2-21 for more information |
| about using this call. |
| Parameters |
| stmtp (IN) - a statement handle. |
| errhp (IN) - an error handle to retrieve diagnostic information. |
| stmt (IN) - SQL or PL/SQL statement to be executed. Must be a null-terminated |
| string. The pointer to the OraText of the statement must be available as long |
| as the statement is executed. |
| stmt_len (IN) - length of the statement. Must not be zero. |
| language (IN) - V7, V8, or native syntax. Possible values are: |
| OCI_V7_SYNTAX - V7 ORACLE parsing syntax |
| OCI_V8_SYNTAX - V8 ORACLE parsing syntax |
| OCI_NTV_SYNTAX - syntax depending upon the version of the server. |
| mode (IN) - the only defined mode is OCI_DEFAULT for default mode. |
| Example |
| This example demonstrates the use of OCIStmtPrepare(), as well as the OCI |
| application initialization calls. |
| Related Functions |
| OCIAttrGet(), OCIStmtExecute() |
| |
| |
| OCIStmtPrepare2() |
| Name |
| OCI Statement REQuest with (a) early binding to svchp and/or |
| (b) stmt caching |
| Purpose |
| This call defines the SQL/PLSQL statement to be executed. |
| Syntax |
| sword OCIStmtPrepare2 ( OCISvcCtx *svchp, |
| OCIStmt **stmtp, |
| OCIError *errhp, |
| const OraText *stmt, |
| ub4 stmt_len, |
| const OraText *key, |
| ub4 key_len, |
| ub4 language, |
| ub4 mode); |
| Comments |
| This call is used to prepare a SQL or PL/SQL statement for execution. The |
| OCIStmtPrepare() call defines an application request. |
| This is a purely local call. Data values for this statement initialized in |
| subsequent bind calls will be stored in a bind handle which will hang off this |
| statement handle. |
| This call creates an association between the statement handle and a service |
| context. It differs from OCIStmtPrepare in that respect.It also supports |
| stmt caching. The stmt will automatically be cached if the authp of the stmt |
| has enabled stmt caching. |
| Parameters |
| svchp (IN) - the service context handle that contains the session that |
| this stmt handle belongs to. |
| stmtp (OUT) - an unallocated stmt handle must be pased in. An allocated |
| and prepared statement handle will be returned. |
| errhp (IN) - an error handle to retrieve diagnostic information. |
| stmt (IN) - SQL or PL/SQL statement to be executed. Must be a null- |
| terminated string. The pointer to the OraText of the statement |
| must be available as long as the statement is executed. |
| stmt_len (IN) - length of the statement. Must not be zero. |
| key (IN) - This is only Valid for OCI Stmt Caching. It indicates the |
| key to search with. It thus optimizes the search in the cache. |
| key_len (IN) - the length of the key. This, too, is onlly valid for stmt |
| caching. |
| language (IN) - V7, V8, or native syntax. Possible values are: |
| OCI_V7_SYNTAX - V7 ORACLE parsing syntax |
| OCI_V8_SYNTAX - V8 ORACLE parsing syntax |
| OCI_NTV_SYNTAX - syntax depending upon the version of the server. |
| mode (IN) - the defined modes are OCI_DEFAULT and OCI_PREP2_CACHE_SEARCHONLY. |
| Example |
| Related Functions |
| OCIStmtExecute(), OCIStmtRelease() |
| |
| |
| OCIStmtRelease() |
| Name |
| OCI Statement Release. This call is used to relesae the stmt that |
| was retreived using OCIStmtPrepare2(). If the stmt is release |
| using this call, OCIHandleFree() must not be called on the stmt |
| handle. |
| Purpose |
| This call releases the statement obtained by OCIStmtPrepare2 |
| Syntax |
| sword OCIStmtRelease ( OCIStmt *stmtp, |
| OCIError *errhp, |
| cONST OraText *key, |
| ub4 key_len, |
| ub4 mode); |
| Comments |
| This call is used to release a handle obtained via OCIStmtPrepare2(). |
| It also frees the memory associated with the handle. |
| This is a purely local call. |
| Parameters |
| stmtp (IN/OUT) - The statement handle to be released/freed. |
| errhp (IN) - an error handle to retrieve diagnostic information. |
| key (IN) - This is only Valid for OCI Stmt Caching. It indicates the |
| key to tag the stmt with. |
| key_len (IN) - the length of the key. This, too, is only valid for stmt |
| caching. |
| mode (IN) - the defined modes are OCI_DEFAULT for default mode and |
| OCI_STRLS_CACHE_DELETE (only used for Stmt Caching). |
| Example |
| Related Functions |
| OCIStmtExecute(), OCIStmtPrepare2() |
| |
| |
| OCIStmtSetPieceInfo() |
| Name |
| OCI Set Piece Information |
| Purpose |
| Sets piece information for a piecewise operation. |
| Syntax |
| sword OCIStmtSetPieceInfo ( void *hndlp, |
| ub4 type, |
| OCIError *errhp, |
| const void *bufp, |
| ub4 *alenp, |
| ub1 piece, |
| const void *indp, |
| ub2 *rcodep ); |
| Comments |
| When an execute call returns OCI_NEED_DATA to get a dynamic IN/OUT |
| bind value or piece, OCIStmtSetPieceInfo() sets the piece information: the |
| buffer, the length, the indicator and which piece is currently being processed. |
| For more information about using OCIStmtSetPieceInfo() see the section |
| "Runtime Data Allocation and Piecewise Operations" on page 5-16. |
| Parameters |
| hndlp (IN/OUT) - the bind/define handle. |
| type (IN) - type of the handle. |
| errhp (OUT) - an error handle which can be passed to OCIErrorGet() for |
| diagnostic information in the event of an error. |
| bufp (IN/OUT) - bufp is a pointer to a storage containing the data value or |
| the piece when it is an IN bind variable, otherwise bufp is a pointer to |
| storage for getting a piece or a value for OUT binds and define variables. For |
| named data types or REFs, a pointer to the object or REF is returned. |
| alenp (IN/OUT) - the length of the piece or the value. |
| piece (IN) - the piece parameter. The following are valid values: |
| OCI_ONE_PIECE, OCI_FIRST_PIECE, OCI_NEXT_PIECE, or |
| OCI_LAST_PIECE. |
| The default value is OCI_ONE_PIECE. This parameter is used for IN bind |
| variables only. |
| indp (IN/OUT) - indicator. A pointer to a sb2 value or pointer to an indicator |
| structure for named data types (SQLT_NTY) and REFs (SQLT_REF), i.e., *indp |
| is either an sb2 or a void * depending upon the data type. |
| rcodep (IN/OUT) - return code. |
| Related Functions |
| OCIAttrGet(), OCIAttrGet(), OCIStmtExecute(), OCIStmtFetch(), |
| OCIStmtGetPieceInfo() |
| |
| |
| OCIFormatInit |
| Name |
| OCIFormat Package Initialize |
| Purpose |
| Initializes the OCIFormat package. |
| Syntax |
| sword OCIFormatInit(void *hndl, OCIError *err); |
| Comments |
| This routine must be called before calling any other OCIFormat routine. |
| Returns OCI_SUCCESS, OCI_INVALID_HANDLE, or OCI_ERROR |
| Parameters |
| hndl (IN/OUT) - OCI environment or session handle |
| err (IN/OUT) - OCI error handle |
| Related Functions |
| OCIFormatTerm() |
| |
| |
| OCIFormatString |
| Name |
| OCIFormat Package Format String |
| Purpose |
| Writes a text string into the supplied text buffer using the argument |
| list submitted to it and in accordance with the format string given. |
| Syntax |
| sword OCIFormatString(void *hndl, OCIError *err, OraText *buffer, |
| sbig_ora bufferLength, sbig_ora *returnLength, |
| const OraText *formatString, ...); |
| Comments |
| The first call to this routine must be preceded by a call to the |
| OCIFormatInit routine that initializes the OCIFormat package |
| for use. When this routine is no longer needed then terminate |
| the OCIFormat package by a call to the OCIFormatTerm routine. |
| Returns OCI_SUCCESS, OCI_INVALID_HANDLE, or OCI_ERROR |
| Parameters |
| hndl (IN/OUT) - OCI environment or session handle |
| err (IN/OUT) - OCI error handle |
| buffer (OUT) - text buffer for the string |
| bufferLength (IN) - length of the text buffer |
| returnLength (OUT) - length of the formatted string |
| formatString (IN) - format specification string |
| ... (IN) - variable argument list |
| Related Functions |
| |
| |
| OCIFormatTerm |
| Name |
| OCIFormat Package Terminate |
| Purpose |
| Terminates the OCIFormat package. |
| Syntax |
| sword OCIFormatTerm(void *hndl, OCIError *err); |
| Comments |
| It must be called after the OCIFormat package is no longer being used. |
| Returns OCI_SUCCESS, OCI_INVALID_HANDLE, or OCI_ERROR |
| Parameters |
| hndl (IN/OUT) - OCI environment or session handle |
| err (IN/OUT) - OCI error handle |
| Related Functions |
| OCIFormatInit() |
| |
| |
| OCIFormatTUb1 |
| Name |
| OCIFormat Package ub1 Type |
| Purpose |
| Return the type value for the ub1 type. |
| Syntax |
| sword OCIFormatTUb1(void); |
| Comments |
| None |
| Parameters |
| None |
| Related Functions |
| None |
| |
| |
| OCIFormatTUb2 |
| Name |
| OCIFormat Package ub2 Type |
| Purpose |
| Return the type value for the ub2 type. |
| Syntax |
| sword OCIFormatTUb2(void); |
| Comments |
| None |
| Parameters |
| None |
| Related Functions |
| None |
| |
| |
| OCIFormatTUb4 |
| Name |
| OCIFormat Package ub4 Type |
| Purpose |
| Return the type value for the ub4 type. |
| Syntax |
| sword OCIFormatTUb4(void); |
| Comments |
| None |
| Parameters |
| None |
| Related Functions |
| None |
| |
| |
| OCIFormatTUword |
| Name |
| OCIFormat Package uword Type |
| Purpose |
| Return the type value for the uword type. |
| Syntax |
| sword OCIFormatTUword(void); |
| Comments |
| None |
| Parameters |
| None |
| Related Functions |
| None |
| |
| |
| OCIFormatTUbig_ora |
| Name |
| OCIFormat Package ubig_ora Type |
| Purpose |
| Return the type value for the ubig_ora type. |
| Syntax |
| sword OCIFormatTUbig_ora(void); |
| Comments |
| None |
| Parameters |
| None |
| Related Functions |
| None |
| |
| |
| OCIFormatTSb1 |
| Name |
| OCIFormat Package sb1 Type |
| Purpose |
| Return the type value for the sb1 type. |
| Syntax |
| sword OCIFormatTSb1(void); |
| Comments |
| None |
| Parameters |
| None |
| Related Functions |
| None |
| |
| |
| OCIFormatTSb2 |
| Name |
| OCIFormat Package sb2 Type |
| Purpose |
| Return the type value for the sb2 type. |
| Syntax |
| sword OCIFormatTSb2(void); |
| Comments |
| None |
| Parameters |
| None |
| Related Functions |
| None |
| |
| |
| OCIFormatTSb4 |
| Name |
| OCIFormat Package sb4 Type |
| Purpose |
| Return the type value for the sb4 type. |
| Syntax |
| sword OCIFormatTSb4(void); |
| Comments |
| None |
| Parameters |
| None |
| Related Functions |
| None |
| |
| |
| OCIFormatTSword |
| Name |
| OCIFormat Package sword Type |
| Purpose |
| Return the type value for the sword type. |
| Syntax |
| sword OCIFormatTSword(void); |
| Comments |
| None |
| Parameters |
| None |
| Related Functions |
| None |
| |
| |
| OCIFormatTSbig_ora |
| Name |
| OCIFormat Package sbig_ora Type |
| Purpose |
| Return the type value for the sbig_ora type. |
| Syntax |
| sword OCIFormatTSbig_ora(void); |
| Comments |
| None |
| Parameters |
| None |
| Related Functions |
| None |
| |
| |
| OCIFormatTEb1 |
| Name |
| OCIFormat Package eb1 Type |
| Purpose |
| Return the type value for the eb1 type. |
| Syntax |
| sword OCIFormatTEb1(void); |
| Comments |
| None |
| Parameters |
| None |
| Related Functions |
| None |
| |
| |
| OCIFormatTEb2 |
| Name |
| OCIFormat Package eb2 Type |
| Purpose |
| Return the type value for the eb2 type. |
| Syntax |
| sword OCIFormatTEb2(void); |
| Comments |
| None |
| Parameters |
| None |
| Related Functions |
| None |
| |
| |
| OCIFormatTEb4 |
| Name |
| OCIFormat Package eb4 Type |
| Purpose |
| Return the type value for the eb4 type. |
| Syntax |
| sword OCIFormatTEb4(void); |
| Comments |
| None |
| Parameters |
| None |
| Related Functions |
| None |
| |
| |
| OCIFormatTEword |
| Name |
| OCIFormat Package eword Type |
| Purpose |
| Return the type value for the eword type. |
| Syntax |
| sword OCIFormatTEword(void); |
| Comments |
| None |
| Parameters |
| None |
| Related Functions |
| None |
| |
| |
| OCIFormatTChar |
| Name |
| OCIFormat Package text Type |
| Purpose |
| Return the type value for the text type. |
| Syntax |
| sword OCIFormatTChar(void); |
| Comments |
| None |
| Parameters |
| None |
| Related Functions |
| None |
| |
| |
| OCIFormatTText |
| Name |
| OCIFormat Package *text Type |
| Purpose |
| Return the type value for the *text type. |
| Syntax |
| sword OCIFormatTText(void); |
| Comments |
| None |
| Parameters |
| None |
| Related Functions |
| None |
| |
| |
| OCIFormatTDouble |
| Name |
| OCIFormat Package double Type |
| Purpose |
| Return the type value for the double type. |
| Syntax |
| sword OCIFormatTDouble(void); |
| Comments |
| None |
| Parameters |
| None |
| Related Functions |
| None |
| |
| |
| OCIFormatDvoid |
| Name |
| OCIFormat Package void Type |
| Purpose |
| Return the type value for the void type. |
| Syntax |
| sword OCIFormatTDvoid(void); |
| Comments |
| None |
| Parameters |
| None |
| Related Functions |
| None |
| |
| |
| OCIFormatTEnd |
| Name |
| OCIFormat Package end Type |
| Purpose |
| Return the list terminator's "type". |
| Syntax |
| sword OCIFormatTEnd(void); |
| Comments |
| None |
| Parameters |
| None |
| Related Functions |
| None |
| |
| |
| OCISvcCtxToLda() |
| Name |
| OCI toggle SerVice context handle to Version 7 Lda_Def |
| Purpose |
| Toggles between a V8 service context handle and a V7 Lda_Def. |
| Syntax |
| sword OCISvcCtxToLda ( OCISvcCtx *srvhp, |
| OCIError *errhp, |
| Lda_Def *ldap ); |
| Comments |
| Toggles between an Oracle8 service context handle and an Oracle7 Lda_Def. |
| This function can only be called after a service context has been properly |
| initialized. |
| Once the service context has been translated to an Lda_Def, it can be used in |
| release 7.x OCI calls (e.g., obindps(), ofen()). |
| Note: If there are multiple service contexts which share the same server |
| handle, only one can be in V7 mode at any time. |
| The action of this call can be reversed by passing the resulting Lda_Def to |
| the OCILdaToSvcCtx() function. |
| Parameters |
| svchp (IN/OUT) - the service context handle. |
| errhp (IN/OUT) - an error handle which can be passed to OCIErrorGet() for |
| diagnostic information in the event of an error. |
| ldap (IN/OUT) - a Logon Data Area for V7-style OCI calls which is initialized |
| by this call. |
| Related Functions |
| OCILdaToSvcCtx() |
| |
| |
| |
| |
| OCITransCommit() |
| Name |
| OCI TX (transaction) CoMmit |
| Purpose |
| Commits the transaction associated with a specified service context. |
| Syntax |
| sword OCITransCommit ( OCISvcCtx *srvcp, |
| OCIError *errhp, |
| ub4 flags ); |
| Comments |
| The transaction currently associated with the service context is committed. If |
| it is a distributed transaction that the server cannot commit, this call |
| additionally retrieves the state of the transaction from the database to be |
| returned to the user in the error handle. |
| If the application has defined multiple transactions, this function operates |
| on the transaction currently associated with the service context. If the |
| application is working with only the implicit local transaction created when |
| database changes are made, that implicit transaction is committed. |
| If the application is running in the object mode, then the modified or updated |
| objects in the object cache for this transaction are also committed. |
| The flags parameter is used for one-phase commit optimization in distributed |
| transactions. If the transaction is non-distributed, the flags parameter is |
| ignored, and OCI_DEFAULT can be passed as its value. OCI applications |
| managing global transactions should pass a value of |
| OCI_TRANS_TWOPHASE to the flags parameter for a two-phase commit. The |
| default is one-phase commit. |
| Under normal circumstances, OCITransCommit() returns with a status |
| indicating that the transaction has either been committed or rolled back. With |
| distributed transactions, it is possible that the transaction is now in-doubt |
| (i.e., neither committed nor aborted). In this case, OCITransCommit() |
| attempts to retrieve the status of the transaction from the server. |
| The status is returned. |
| Parameters |
| srvcp (IN) - the service context handle. |
| errhp (IN) - an error handle which can be passed to OCIErrorGet() for |
| diagnostic information in the event of an error. |
| flags -see the "Comments" section above. |
| Related Functions |
| OCITransRollback() |
| |
| |
| |
| |
| OCITransDetach() |
| Name |
| OCI TX (transaction) DeTach |
| Purpose |
| Detaches a transaction. |
| Syntax |
| sword OCITransDetach ( OCISvcCtx *srvcp, |
| OCIError *errhp, |
| ub4 flags); |
| Comments |
| Detaches a global transaction from the service context handle. The transaction |
| currently attached to the service context handle becomes inactive at the end |
| of this call. The transaction may be resumed later by calling OCITransStart(), |
| specifying a flags value of OCI_TRANS_RESUME. |
| When a transaction is detached, the value which was specified in the timeout |
| parameter of OCITransStart() when the transaction was started is used to |
| determine the amount of time the branch can remain inactive before being |
| deleted by the server's PMON process. |
| Note: The transaction can be resumed by a different process than the one |
| that detached it, provided that the transaction has the same |
| authorization. |
| Parameters |
| srvcp (IN) - the service context handle. |
| errhp (IN) - an error handle which can be passed to OCIErrorGet() for |
| diagnostic information in the event of an error. |
| flags (IN) - you must pass a value of OCI_DEFAULT for this parameter. |
| Related Functions |
| OCITransStart() |
| |
| |
| |
| OCITransForget() |
| Name |
| OCI TX (transaction) ForGeT |
| Purpose |
| Causes the server to forget a heuristically completed global transaction. |
| Syntax |
| sword OCITransForget ( OCISvcCtx *svchp, |
| OCIError *errhp, |
| ub4 flags); |
| |
| Comments |
| |
| Forgets a heuristically completed global transaction. The server deletes the |
| status of the transaction from the system's pending transaction table. |
| The XID of the transaction to be forgotten is set as an attribute of the |
| transaction handle (OCI_ATTR_XID). |
| Parameters |
| srvcp (IN) - the service context handle - the transaction is rolled back. |
| errhp (IN) - an error handle which can be passed to OCIErrorGet() for |
| diagnostic information in the event of an error. |
| flags (IN) - you must pass OCI_DEFAULT for this parameter. |
| Related Functions |
| OCITransCommit(), OCITransRollback() |
| |
| |
| OCITransMultiPrepare() |
| Name |
| OCI Trans(action) Multi-Branch Prepare |
| Purpose |
| Prepares a transaction with multiple branches in a single call. |
| Syntax |
| sword OCITransMultiPrepare ( OCISvcCtx *svchp, |
| ub4 numBranches, |
| OCITrans **txns, |
| OCIError **errhp); |
| |
| Comments |
| |
| Prepares the specified global transaction for commit. |
| This call is valid only for distributed transactions. |
| This call is an advanced performance feature intended for use only in |
| situations where the caller is responsible for preparing all the branches |
| in a transaction. |
| Parameters |
| srvcp (IN) - the service context handle. |
| numBranches (IN) - This is the number of branches expected. It is also the |
| array size for the next two parameters. |
| txns (IN) - This is the array of transaction handles for the branches to |
| prepare. They should all have the OCI_ATTR_XID set. The global transaction |
| ID should be the same. |
| errhp (IN) - This is the array of error handles. If OCI_SUCCESS is not |
| returned, then these will indicate which branches received which errors. |
| Related Functions |
| OCITransPrepare() |
| |
| |
| OCITransPrepare() |
| Name |
| OCI TX (transaction) PREpare |
| Purpose |
| Prepares a transaction for commit. |
| Syntax |
| sword OCITransPrepare ( OCISvcCtx *svchp, |
| OCIError *errhp, |
| ub4 flags); |
| |
| Comments |
| |
| Prepares the specified global transaction for commit. |
| This call is valid only for distributed transactions. |
| The call returns OCI_SUCCESS_WITH_INFO if the transaction has not made |
| any changes. The error handle will indicate that the transaction is read-only. |
| The flag parameter is not currently used. |
| Parameters |
| srvcp (IN) - the service context handle. |
| errhp (IN) - an error handle which can be passed to OCIErrorGet() for |
| diagnostic information in the event of an error. |
| flags (IN) - you must pass OCI_DEFAULT for this parameter. |
| Related Functions |
| OCITransCommit(), OCITransForget() |
| |
| |
| |
| |
| OCITransRollback() |
| Name |
| OCI TX (transaction) RoLlback |
| Purpose |
| Rolls back the current transaction. |
| Syntax |
| sword OCITransRollback ( void *svchp, |
| OCIError *errhp, |
| ub4 flags ); |
| Comments |
| The current transaction- defined as the set of statements executed since the |
| last OCITransCommit() or since OCISessionBegin()-is rolled back. |
| If the application is running under object mode then the modified or updated |
| objects in the object cache for this transaction are also rolled back. |
| An error is returned if an attempt is made to roll back a global transaction |
| that is not currently active. |
| Parameters |
| svchp (IN) - a service context handle. The transaction currently set in the |
| service context handle is rolled back. |
| errhp -(IN) - an error handle which can be passed to OCIErrorGet() for |
| diagnostic information in the event of an error. |
| flags - you must pass a value of OCI_DEFAULT for this parameter. |
| Related Functions |
| OCITransCommit() |
| |
| |
| |
| |
| OCITransStart() |
| Name |
| OCI TX (transaction) STart |
| Purpose |
| Sets the beginning of a transaction. |
| Syntax |
| sword OCITransStart ( OCISvcCtx *svchp, |
| OCIError *errhp, |
| uword timeout, |
| ub4 flags); |
| |
| Comments |
| This function sets the beginning of a global or serializable transaction. The |
| transaction context currently associated with the service context handle is |
| initialized at the end of the call if the flags parameter specifies that a new |
| transaction should be started. |
| The XID of the transaction is set as an attribute of the transaction handle |
| (OCI_ATTR_XID) |
| Parameters |
| svchp (IN/OUT) - the service context handle. The transaction context in the |
| service context handle is initialized at the end of the call if the flag |
| specified a new transaction to be started. |
| errhp (IN/OUT) - The OCI error handle. If there is an error, it is recorded in |
| err and this function returns OCI_ERROR. Diagnostic information can be |
| obtained by calling OCIErrorGet(). |
| timeout (IN) - the time, in seconds, to wait for a transaction to become |
| available for resumption when OCI_TRANS_RESUME is specified. When |
| OCI_TRANS_NEW is specified, this value is stored and may be used later by |
| OCITransDetach(). |
| flags (IN) - specifies whether a new transaction is being started or an |
| existing transaction is being resumed. Also specifies serializiability or |
| read-only status. More than a single value can be specified. By default, |
| a read/write transaction is started. The flag values are: |
| OCI_TRANS_NEW - starts a new transaction branch. By default starts a |
| tightly coupled and migratable branch. |
| OCI_TRANS_TIGHT - explicitly specifies a tightly coupled branch |
| OCI_TRANS_LOOSE - specifies a loosely coupled branch |
| OCI_TRANS_RESUME - resumes an existing transaction branch. |
| OCI_TRANS_READONLY - start a readonly transaction |
| OCI_TRANS_SERIALIZABLE - start a serializable transaction |
| Related Functions |
| OCITransDetach() |
| |
| |
| |
| |
| |
| ******************************************************************************/ |
| /*-----------------------Dynamic Callback Function Pointers------------------*/ |
| |
| |
| typedef sb4 (*OCICallbackInBind)(void *ictxp, OCIBind *bindp, ub4 iter, |
| ub4 index, void **bufpp, ub4 *alenp, |
| ub1 *piecep, void **indp); |
| |
| typedef sb4 (*OCICallbackOutBind)(void *octxp, OCIBind *bindp, ub4 iter, |
| ub4 index, void **bufpp, ub4 **alenp, |
| ub1 *piecep, void **indp, |
| ub2 **rcodep); |
| |
| typedef sb4 (*OCICallbackDefine)(void *octxp, OCIDefine *defnp, ub4 iter, |
| void **bufpp, ub4 **alenp, ub1 *piecep, |
| void **indp, ub2 **rcodep); |
| |
| typedef sword (*OCIUserCallback)(void *ctxp, void *hndlp, ub4 type, |
| ub4 fcode, ub4 when, sword returnCode, |
| sb4 *errnop, va_list arglist); |
| |
| typedef sword (*OCIEnvCallbackType)(OCIEnv *env, ub4 mode, |
| size_t xtramem_sz, void *usrmemp, |
| OCIUcb *ucbDesc); |
| |
| typedef sb4 (*OCICallbackLobRead)(void *ctxp, const void *bufp, |
| ub4 len, ub1 piece); |
| |
| typedef sb4 (*OCICallbackLobWrite)(void *ctxp, void *bufp, |
| ub4 *lenp, ub1 *piece); |
| |
| #ifdef ORAXB8_DEFINED |
| |
| typedef sb4 (*OCICallbackLobRead2)(void *ctxp, const void *bufp, oraub8 len, |
| ub1 piece, void **changed_bufpp, |
| oraub8 *changed_lenp); |
| |
| typedef sb4 (*OCICallbackLobWrite2)(void *ctxp, void *bufp, oraub8 *lenp, |
| ub1 *piece, void **changed_bufpp, |
| oraub8 *changed_lenp); |
| |
| typedef sb4 (*OCICallbackLobArrayRead)(void *ctxp, ub4 array_iter, |
| const void *bufp, oraub8 len, |
| ub1 piece, void **changed_bufpp, |
| oraub8 *changed_lenp); |
| |
| typedef sb4 (*OCICallbackLobArrayWrite)(void *ctxp, ub4 array_iter, |
| void *bufp, oraub8 *lenp, |
| ub1 *piece, void **changed_bufpp, |
| oraub8 *changed_lenp); |
| #endif |
| |
| typedef sb4 (*OCICallbackLobGetDeduplicateRegions)(void *ctxp, |
| OCILobRegion *regions, |
| ub4 count, ub1 piece, |
| OCILobRegion **changed_reg, |
| ub4 *changed_count); |
| |
| typedef sb4 (*OCICallbackAQEnq)(void *ctxp, void **payload, |
| void **payload_ind); |
| |
| typedef sb4 (*OCICallbackAQEnqStreaming)(void *ctxp, void **payload, |
| void **payload_ind, |
| OCIAQMsgProperties **msgprop, |
| OCIType **tdo); |
| |
| typedef sb4 (*OCICallbackAQDeq)(void *ctxp, void **payload, |
| void **payload_ind); |
| |
| /*--------------------------Failover Callback Structure ---------------------*/ |
| typedef sb4 (*OCICallbackFailover)(void *svcctx, void *envctx, |
| void *fo_ctx, ub4 fo_type, |
| ub4 fo_event); |
| |
| typedef struct |
| { |
| OCICallbackFailover callback_function; |
| void *fo_ctx; |
| } |
| OCIFocbkStruct; |
| |
| /*---------------------Statement Cache callback function ------------------*/ |
| |
| typedef sword (*OCICallbackStmtCache)(void *ctx, OCIStmt *stmt, ub4 mode); |
| |
| /*--------------------------HA Callback Structure ---------------------*/ |
| typedef void (*OCIEventCallback)(void *evtctx, OCIEvent *eventhp); |
| |
| |
| /*------------------------- Round Trip Callback Structure --------------------*/ |
| typedef sword (*OCIRoundTripCallback)(void *rtctx, OCISvcCtx *svch, |
| OCISession *userh); |
| |
| |
| /***************************************************************************** |
| ACTUAL PROTOTYPE DECLARATIONS |
| ******************************************************************************/ |
| |
| sword OCIInitialize (ub4 mode, void *ctxp, |
| void *(*malocfp)(void *ctxp, size_t size), |
| void *(*ralocfp)(void *ctxp, void *memptr, size_t newsize), |
| void (*mfreefp)(void *ctxp, void *memptr) ); |
| |
| sword OCITerminate( ub4 mode); |
| |
| sword OCIEnvCreate (OCIEnv **envp, ub4 mode, void *ctxp, |
| void *(*malocfp)(void *ctxp, size_t size), |
| void *(*ralocfp)(void *ctxp, void *memptr, size_t newsize), |
| void (*mfreefp)(void *ctxp, void *memptr), |
| size_t xtramem_sz, void **usrmempp); |
| |
| sword OCIEnvNlsCreate (OCIEnv **envp, ub4 mode, void *ctxp, |
| void *(*malocfp)(void *ctxp, size_t size), |
| void *(*ralocfp)(void *ctxp, void *memptr, size_t newsize), |
| void (*mfreefp)(void *ctxp, void *memptr), |
| size_t xtramem_sz, void **usrmempp, |
| ub2 charset, ub2 ncharset); |
| |
| sword OCIFEnvCreate (OCIEnv **envp, ub4 mode, void *ctxp, |
| void *(*malocfp)(void *ctxp, size_t size), |
| void *(*ralocfp)(void *ctxp, void *memptr, size_t newsize), |
| void (*mfreefp)(void *ctxp, void *memptr), |
| size_t xtramem_sz, void **usrmempp, void *fupg); |
| |
| sword OCIHandleAlloc(const void *parenth, void **hndlpp, const ub4 type, |
| const size_t xtramem_sz, void **usrmempp); |
| |
| sword OCIHandleFree(void *hndlp, const ub4 type); |
| |
| |
| sword OCIDescriptorAlloc(const void *parenth, void **descpp, |
| const ub4 type, const size_t xtramem_sz, |
| void **usrmempp); |
| |
| sword OCIArrayDescriptorAlloc(const void *parenth, void **descpp, |
| const ub4 type, ub4 array_size, |
| const size_t xtramem_sz, void **usrmempp); |
| |
| sword OCIDescriptorFree(void *descp, const ub4 type); |
| |
| sword OCIArrayDescriptorFree(void **descp, const ub4 type); |
| |
| sword OCIEnvInit (OCIEnv **envp, ub4 mode, |
| size_t xtramem_sz, void **usrmempp); |
| |
| sword OCIServerAttach (OCIServer *srvhp, OCIError *errhp, |
| const OraText *dblink, sb4 dblink_len, ub4 mode); |
| |
| sword OCIServerDetach (OCIServer *srvhp, OCIError *errhp, ub4 mode); |
| |
| sword OCISessionBegin (OCISvcCtx *svchp, OCIError *errhp, OCISession *usrhp, |
| ub4 credt, ub4 mode); |
| |
| sword OCISessionEnd (OCISvcCtx *svchp, OCIError *errhp, OCISession *usrhp, |
| ub4 mode); |
| |
| sword OCILogon (OCIEnv *envhp, OCIError *errhp, OCISvcCtx **svchp, |
| const OraText *username, ub4 uname_len, |
| const OraText *password, ub4 passwd_len, |
| const OraText *dbname, ub4 dbname_len); |
| |
| sword OCILogon2 (OCIEnv *envhp, OCIError *errhp, OCISvcCtx **svchp, |
| const OraText *username, ub4 uname_len, |
| const OraText *password, ub4 passwd_len, |
| const OraText *dbname, ub4 dbname_len, |
| ub4 mode); |
| |
| sword OCILogoff (OCISvcCtx *svchp, OCIError *errhp); |
| |
| |
| sword OCIPasswordChange (OCISvcCtx *svchp, OCIError *errhp, |
| const OraText *user_name, ub4 usernm_len, |
| const OraText *opasswd, ub4 opasswd_len, |
| const OraText *npasswd, ub4 npasswd_len, |
| ub4 mode); |
| |
| sword OCIStmtPrepare (OCIStmt *stmtp, OCIError *errhp, const OraText *stmt, |
| ub4 stmt_len, ub4 language, ub4 mode); |
| |
| sword OCIStmtPrepare2 ( OCISvcCtx *svchp, OCIStmt **stmtp, OCIError *errhp, |
| const OraText *stmt, ub4 stmt_len, const OraText *key, |
| ub4 key_len, ub4 language, ub4 mode); |
| |
| sword OCIStmtRelease ( OCIStmt *stmtp, OCIError *errhp, const OraText *key, |
| ub4 key_len, ub4 mode); |
| |
| sword OCIBindByPos (OCIStmt *stmtp, OCIBind **bindp, OCIError *errhp, |
| ub4 position, void *valuep, sb4 value_sz, |
| ub2 dty, void *indp, ub2 *alenp, ub2 *rcodep, |
| ub4 maxarr_len, ub4 *curelep, ub4 mode); |
| |
| sword OCIBindByName (OCIStmt *stmtp, OCIBind **bindp, OCIError *errhp, |
| const OraText *placeholder, sb4 placeh_len, |
| void *valuep, sb4 value_sz, ub2 dty, |
| void *indp, ub2 *alenp, ub2 *rcodep, |
| ub4 maxarr_len, ub4 *curelep, ub4 mode); |
| |
| sword OCIBindObject (OCIBind *bindp, OCIError *errhp, const OCIType *type, |
| void **pgvpp, ub4 *pvszsp, void **indpp, |
| ub4 *indszp); |
| |
| sword OCIBindDynamic (OCIBind *bindp, OCIError *errhp, void *ictxp, |
| OCICallbackInBind icbfp, void *octxp, |
| OCICallbackOutBind ocbfp); |
| |
| sword OCIBindArrayOfStruct (OCIBind *bindp, OCIError *errhp, |
| ub4 pvskip, ub4 indskip, |
| ub4 alskip, ub4 rcskip); |
| |
| sword OCIStmtGetPieceInfo (OCIStmt *stmtp, OCIError *errhp, |
| void **hndlpp, ub4 *typep, |
| ub1 *in_outp, ub4 *iterp, ub4 *idxp, |
| ub1 *piecep); |
| |
| sword OCIStmtSetPieceInfo (void *hndlp, ub4 type, OCIError *errhp, |
| const void *bufp, ub4 *alenp, ub1 piece, |
| const void *indp, ub2 *rcodep); |
| |
| sword OCIStmtExecute (OCISvcCtx *svchp, OCIStmt *stmtp, OCIError *errhp, |
| ub4 iters, ub4 rowoff, const OCISnapshot *snap_in, |
| OCISnapshot *snap_out, ub4 mode); |
| |
| sword OCIDefineByPos (OCIStmt *stmtp, OCIDefine **defnp, OCIError *errhp, |
| ub4 position, void *valuep, sb4 value_sz, ub2 dty, |
| void *indp, ub2 *rlenp, ub2 *rcodep, ub4 mode); |
| |
| sword OCIDefineObject (OCIDefine *defnp, OCIError *errhp, |
| const OCIType *type, void **pgvpp, |
| ub4 *pvszsp, void **indpp, ub4 *indszp); |
| |
| sword OCIDefineDynamic (OCIDefine *defnp, OCIError *errhp, void *octxp, |
| OCICallbackDefine ocbfp); |
| |
| sword OCIRowidToChar (OCIRowid *rowidDesc, OraText *outbfp, ub2 *outbflp, |
| OCIError *errhp); |
| |
| sword OCIDefineArrayOfStruct (OCIDefine *defnp, OCIError *errhp, ub4 pvskip, |
| ub4 indskip, ub4 rlskip, ub4 rcskip); |
| |
| sword OCIStmtFetch (OCIStmt *stmtp, OCIError *errhp, ub4 nrows, |
| ub2 orientation, ub4 mode); |
| |
| sword OCIStmtFetch2 (OCIStmt *stmtp, OCIError *errhp, ub4 nrows, |
| ub2 orientation, sb4 scrollOffset, ub4 mode); |
| |
| sword OCIStmtGetBindInfo (OCIStmt *stmtp, OCIError *errhp, ub4 size, |
| ub4 startloc, |
| sb4 *found, OraText *bvnp[], ub1 bvnl[], |
| OraText *invp[], ub1 inpl[], ub1 dupl[], |
| OCIBind **hndl); |
| |
| sword OCIDescribeAny (OCISvcCtx *svchp, OCIError *errhp, |
| void *objptr, |
| ub4 objnm_len, ub1 objptr_typ, ub1 info_level, |
| ub1 objtyp, OCIDescribe *dschp); |
| |
| sword OCIParamGet (const void *hndlp, ub4 htype, OCIError *errhp, |
| void **parmdpp, ub4 pos); |
| |
| sword OCIParamSet(void *hdlp, ub4 htyp, OCIError *errhp, const void *dscp, |
| ub4 dtyp, ub4 pos); |
| |
| sword OCITransStart (OCISvcCtx *svchp, OCIError *errhp, |
| uword timeout, ub4 flags ); |
| |
| sword OCITransDetach (OCISvcCtx *svchp, OCIError *errhp, ub4 flags ); |
| |
| sword OCITransCommit (OCISvcCtx *svchp, OCIError *errhp, ub4 flags); |
| |
| sword OCITransRollback (OCISvcCtx *svchp, OCIError *errhp, ub4 flags); |
| |
| sword OCITransPrepare (OCISvcCtx *svchp, OCIError *errhp, ub4 flags); |
| |
| sword OCITransMultiPrepare (OCISvcCtx *svchp, ub4 numBranches, |
| OCITrans **txns, OCIError **errhp); |
| |
| sword OCITransForget (OCISvcCtx *svchp, OCIError *errhp, ub4 flags); |
| |
| sword OCIErrorGet (void *hndlp, ub4 recordno, OraText *sqlstate, |
| sb4 *errcodep, OraText *bufp, ub4 bufsiz, ub4 type); |
| |
| sword OCILobAppend (OCISvcCtx *svchp, OCIError *errhp, |
| OCILobLocator *dst_locp, |
| OCILobLocator *src_locp); |
| |
| sword OCILobAssign (OCIEnv *envhp, OCIError *errhp, |
| const OCILobLocator *src_locp, |
| OCILobLocator **dst_locpp); |
| |
| sword OCILobCharSetForm (OCIEnv *envhp, OCIError *errhp, |
| const OCILobLocator *locp, ub1 *csfrm); |
| |
| sword OCILobCharSetId (OCIEnv *envhp, OCIError *errhp, |
| const OCILobLocator *locp, ub2 *csid); |
| |
| sword OCILobCopy (OCISvcCtx *svchp, OCIError *errhp, OCILobLocator *dst_locp, |
| OCILobLocator *src_locp, ub4 amount, ub4 dst_offset, |
| ub4 src_offset); |
| |
| sword OCILobCreateTemporary(OCISvcCtx *svchp, |
| OCIError *errhp, |
| OCILobLocator *locp, |
| ub2 csid, |
| ub1 csfrm, |
| ub1 lobtype, |
| boolean cache, |
| OCIDuration duration); |
| |
| |
| sword OCILobClose( OCISvcCtx *svchp, |
| OCIError *errhp, |
| OCILobLocator *locp ); |
| |
| |
| sword OCILobDisableBuffering (OCISvcCtx *svchp, |
| OCIError *errhp, |
| OCILobLocator *locp); |
| |
| sword OCILobEnableBuffering (OCISvcCtx *svchp, |
| OCIError *errhp, |
| OCILobLocator *locp); |
| |
| sword OCILobErase (OCISvcCtx *svchp, OCIError *errhp, OCILobLocator *locp, |
| ub4 *amount, ub4 offset); |
| |
| sword OCILobFileClose (OCISvcCtx *svchp, OCIError *errhp, |
| OCILobLocator *filep); |
| |
| sword OCILobFileCloseAll (OCISvcCtx *svchp, OCIError *errhp); |
| |
| sword OCILobFileExists (OCISvcCtx *svchp, OCIError *errhp, |
| OCILobLocator *filep, |
| boolean *flag); |
| |
| sword OCILobFileGetName (OCIEnv *envhp, OCIError *errhp, |
| const OCILobLocator *filep, |
| OraText *dir_alias, ub2 *d_length, |
| OraText *filename, ub2 *f_length); |
| |
| sword OCILobFileIsOpen (OCISvcCtx *svchp, OCIError *errhp, |
| OCILobLocator *filep, |
| boolean *flag); |
| |
| sword OCILobFileOpen (OCISvcCtx *svchp, OCIError *errhp, |
| OCILobLocator *filep, |
| ub1 mode); |
| |
| sword OCILobFileSetName (OCIEnv *envhp, OCIError *errhp, |
| OCILobLocator **filepp, |
| const OraText *dir_alias, ub2 d_length, |
| const OraText *filename, ub2 f_length); |
| |
| sword OCILobFlushBuffer (OCISvcCtx *svchp, |
| OCIError *errhp, |
| OCILobLocator *locp, |
| ub4 flag); |
| |
| sword OCILobFreeTemporary(OCISvcCtx *svchp, |
| OCIError *errhp, |
| OCILobLocator *locp); |
| |
| sword OCILobGetChunkSize(OCISvcCtx *svchp, |
| OCIError *errhp, |
| OCILobLocator *locp, |
| ub4 *chunksizep); |
| |
| sword OCILobGetLength (OCISvcCtx *svchp, OCIError *errhp, |
| OCILobLocator *locp, |
| ub4 *lenp); |
| |
| sword OCILobIsEqual (OCIEnv *envhp, const OCILobLocator *x, |
| const OCILobLocator *y, |
| boolean *is_equal); |
| |
| sword OCILobIsOpen( OCISvcCtx *svchp, |
| OCIError *errhp, |
| OCILobLocator *locp, |
| boolean *flag); |
| |
| sword OCILobIsTemporary(OCIEnv *envp, |
| OCIError *errhp, |
| OCILobLocator *locp, |
| boolean *is_temporary); |
| |
| sword OCILobLoadFromFile (OCISvcCtx *svchp, OCIError *errhp, |
| OCILobLocator *dst_locp, |
| OCILobLocator *src_filep, |
| ub4 amount, ub4 dst_offset, |
| ub4 src_offset); |
| |
| sword OCILobLocatorAssign (OCISvcCtx *svchp, OCIError *errhp, |
| const OCILobLocator *src_locp, |
| OCILobLocator **dst_locpp); |
| |
| |
| sword OCILobLocatorIsInit (OCIEnv *envhp, OCIError *errhp, |
| const OCILobLocator *locp, |
| boolean *is_initialized); |
| |
| sword OCILobOpen( OCISvcCtx *svchp, |
| OCIError *errhp, |
| OCILobLocator *locp, |
| ub1 mode ); |
| |
| sword OCILobRead (OCISvcCtx *svchp, OCIError *errhp, OCILobLocator *locp, |
| ub4 *amtp, ub4 offset, void *bufp, ub4 bufl, void *ctxp, |
| OCICallbackLobRead cbfp, ub2 csid, ub1 csfrm); |
| |
| sword OCILobTrim (OCISvcCtx *svchp, OCIError *errhp, OCILobLocator *locp, |
| ub4 newlen); |
| |
| sword OCILobWrite (OCISvcCtx *svchp, OCIError *errhp, OCILobLocator *locp, |
| ub4 *amtp, ub4 offset, void *bufp, ub4 buflen, |
| ub1 piece, void *ctxp, OCICallbackLobWrite cbfp, |
| ub2 csid, ub1 csfrm); |
| |
| sword OCILobGetDeduplicateRegions(OCISvcCtx *svchp, OCIError *errhp, |
| OCILobLocator *locp, |
| OCILobRegion *regp, ub4 *count, ub1 piece, |
| void *ctxp, |
| OCICallbackLobGetDeduplicateRegions cbfp); |
| |
| sword OCILobWriteAppend(OCISvcCtx *svchp, OCIError *errhp, OCILobLocator *lobp, |
| ub4 *amtp, void *bufp, ub4 bufl, ub1 piece, |
| void *ctxp, OCICallbackLobWrite cbfp, ub2 csid, |
| ub1 csfrm); |
| |
| sword OCIBreak (void *hndlp, OCIError *errhp); |
| |
| sword OCIReset (void *hndlp, OCIError *errhp); |
| |
| sword OCIServerVersion (void *hndlp, OCIError *errhp, OraText *bufp, |
| ub4 bufsz, |
| ub1 hndltype); |
| |
| sword OCIServerRelease (void *hndlp, OCIError *errhp, OraText *bufp, |
| ub4 bufsz, |
| ub1 hndltype, ub4 *version); |
| |
| sword OCIAttrGet (const void *trgthndlp, ub4 trghndltyp, |
| void *attributep, ub4 *sizep, ub4 attrtype, |
| OCIError *errhp); |
| |
| sword OCIAttrSet (void *trgthndlp, ub4 trghndltyp, void *attributep, |
| ub4 size, ub4 attrtype, OCIError *errhp); |
| |
| sword OCISvcCtxToLda (OCISvcCtx *svchp, OCIError *errhp, Lda_Def *ldap); |
| |
| sword OCILdaToSvcCtx (OCISvcCtx **svchpp, OCIError *errhp, Lda_Def *ldap); |
| |
| sword OCIResultSetToStmt (OCIResult *rsetdp, OCIError *errhp); |
| |
| sword OCIFileClose ( void *hndl, OCIError *err, OCIFileObject *filep ); |
| |
| sword OCIUserCallbackRegister(void *hndlp, ub4 type, void *ehndlp, |
| OCIUserCallback callback, void *ctxp, |
| ub4 fcode, ub4 when, OCIUcb *ucbDesc); |
| |
| sword OCIUserCallbackGet(void *hndlp, ub4 type, void *ehndlp, |
| ub4 fcode, ub4 when, OCIUserCallback *callbackp, |
| void **ctxpp, OCIUcb *ucbDesc); |
| |
| sword OCISharedLibInit(void *metaCtx, void *libCtx, ub4 argfmt, sword argc, |
| void **argv, OCIEnvCallbackType envCallback); |
| |
| sword OCIFileExists ( void *hndl, OCIError *err, OraText *filename, |
| OraText *path, ub1 *flag ); |
| |
| sword OCIFileFlush( void *hndl, OCIError *err, OCIFileObject *filep ); |
| |
| |
| sword OCIFileGetLength( void *hndl, OCIError *err, OraText *filename, |
| OraText *path, ubig_ora *lenp ); |
| |
| sword OCIFileInit ( void *hndl, OCIError *err ); |
| |
| sword OCIFileOpen ( void *hndl, OCIError *err, OCIFileObject **filep, |
| OraText *filename, OraText *path, ub4 mode, ub4 create, |
| ub4 type ); |
| |
| sword OCIFileRead ( void *hndl, OCIError *err, OCIFileObject *filep, |
| void *bufp, ub4 bufl, ub4 *bytesread ); |
| |
| sword OCIFileSeek ( void *hndl, OCIError *err, OCIFileObject *filep, |
| uword origin, ubig_ora offset, sb1 dir ); |
| |
| sword OCIFileTerm ( void *hndl, OCIError *err ); |
| |
| |
| sword OCIFileWrite ( void *hndl, OCIError *err, OCIFileObject *filep, |
| void *bufp, ub4 buflen, ub4 *byteswritten ); |
| |
| |
| #ifdef ORAXB8_DEFINED |
| |
| sword OCILobCopy2 (OCISvcCtx *svchp, OCIError *errhp, |
| OCILobLocator *dst_locp, |
| OCILobLocator *src_locp, oraub8 amount, |
| oraub8 dst_offset, |
| oraub8 src_offset); |
| |
| sword OCILobErase2 (OCISvcCtx *svchp, OCIError *errhp, OCILobLocator *locp, |
| oraub8 *amount, oraub8 offset); |
| |
| sword OCILobGetLength2 (OCISvcCtx *svchp, OCIError *errhp, |
| OCILobLocator *locp, oraub8 *lenp); |
| |
| sword OCILobLoadFromFile2 (OCISvcCtx *svchp, OCIError *errhp, |
| OCILobLocator *dst_locp, |
| OCILobLocator *src_filep, |
| oraub8 amount, oraub8 dst_offset, |
| oraub8 src_offset); |
| |
| sword OCILobRead2 (OCISvcCtx *svchp, OCIError *errhp, OCILobLocator *locp, |
| oraub8 *byte_amtp, oraub8 *char_amtp, oraub8 offset, |
| void *bufp, oraub8 bufl, ub1 piece, void *ctxp, |
| OCICallbackLobRead2 cbfp, ub2 csid, ub1 csfrm); |
| |
| sword OCILobArrayRead (OCISvcCtx *svchp, OCIError *errhp, ub4 *array_iter, |
| OCILobLocator **lobp_arr, oraub8 *byte_amt_arr, |
| oraub8 *char_amt_arr, oraub8 *offset_arr, |
| void **bufp_arr, oraub8 *bufl_arr, ub1 piece, |
| void *ctxp, OCICallbackLobArrayRead cbfp, ub2 csid, |
| ub1 csfrm); |
| |
| sword OCILobTrim2 (OCISvcCtx *svchp, OCIError *errhp, OCILobLocator *locp, |
| oraub8 newlen); |
| |
| sword OCILobWrite2 (OCISvcCtx *svchp, OCIError *errhp, OCILobLocator *locp, |
| oraub8 *byte_amtp, oraub8 *char_amtp, oraub8 offset, |
| void *bufp, oraub8 buflen, ub1 piece, void *ctxp, |
| OCICallbackLobWrite2 cbfp, ub2 csid, ub1 csfrm); |
| |
| sword OCILobArrayWrite (OCISvcCtx *svchp, OCIError *errhp, ub4 *array_iter, |
| OCILobLocator **lobp_arr, oraub8 *byte_amt_arr, |
| oraub8 *char_amt_arr, oraub8 *offset_arr, |
| void **bufp_arr, oraub8 *bufl_arr, ub1 piece, |
| void *ctxp, OCICallbackLobArrayWrite cbfp, ub2 csid, |
| ub1 csfrm); |
| |
| sword OCILobWriteAppend2 (OCISvcCtx *svchp, OCIError *errhp, |
| OCILobLocator *lobp, |
| oraub8 *byte_amtp, oraub8 *char_amtp, void *bufp, |
| oraub8 bufl, ub1 piece, void *ctxp, |
| OCICallbackLobWrite2 cbfp, ub2 csid, ub1 csfrm); |
| |
| sword OCILobGetStorageLimit (OCISvcCtx *svchp, OCIError *errhp, |
| OCILobLocator *lobp, oraub8 *limitp); |
| |
| sword OCILobGetOptions (OCISvcCtx *svchp, OCIError *errhp, |
| OCILobLocator *lobp, |
| ub4 optypes, void *optionsp, ub4 *optionslenp, |
| ub4 mode); |
| |
| sword OCILobSetOptions (OCISvcCtx *svchp, OCIError *errhp, |
| OCILobLocator *lobp, |
| ub4 optypes, void *optionsp, ub4 optionslen, |
| ub4 mode); |
| |
| sword OCILobGetContentType (OCISvcCtx *svchp, |
| OCIError *errhp, OCILobLocator *lobp, |
| oratext *contenttypep, ub4 *contenttypelenp, |
| ub4 mode); |
| |
| sword OCILobSetContentType (OCISvcCtx *svchp, |
| OCIError *errhp, OCILobLocator *lobp, |
| const oratext *contenttypep, ub4 contenttypelen, |
| ub4 mode); |
| |
| #endif |
| |
| /* |
| ** Initialize the security package |
| */ |
| sword OCISecurityInitialize (OCISecurity *sechandle, OCIError *error_handle); |
| |
| sword OCISecurityTerminate (OCISecurity *sechandle, OCIError *error_handle); |
| |
| sword OCISecurityOpenWallet(OCISecurity *osshandle, |
| OCIError *error_handle, |
| size_t wrllen, |
| OraText *wallet_resource_locator, |
| size_t pwdlen, |
| OraText *password, |
| nzttWallet *wallet); |
| |
| sword OCISecurityCloseWallet(OCISecurity *osshandle, |
| OCIError *error_handle, |
| nzttWallet *wallet); |
| |
| sword OCISecurityCreateWallet(OCISecurity *osshandle, |
| OCIError *error_handle, |
| size_t wrllen, |
| OraText *wallet_resource_locator, |
| size_t pwdlen, |
| OraText *password, |
| nzttWallet *wallet); |
| |
| sword OCISecurityDestroyWallet(OCISecurity *osshandle, |
| OCIError *error_handle, |
| size_t wrllen, |
| OraText *wallet_resource_locator, |
| size_t pwdlen, |
| OraText *password); |
| |
| sword OCISecurityStorePersona(OCISecurity *osshandle, |
| OCIError *error_handle, |
| nzttPersona **persona, |
| nzttWallet *wallet); |
| |
| sword OCISecurityOpenPersona(OCISecurity *osshandle, |
| OCIError *error_handle, |
| nzttPersona *persona); |
| |
| sword OCISecurityClosePersona(OCISecurity *osshandle, |
| OCIError *error_handle, |
| nzttPersona *persona); |
| |
| sword OCISecurityRemovePersona(OCISecurity *osshandle, |
| OCIError *error_handle, |
| nzttPersona **persona); |
| |
| sword OCISecurityCreatePersona(OCISecurity *osshandle, |
| OCIError *error_handle, |
| nzttIdentType identity_type, |
| nzttCipherType cipher_type, |
| nzttPersonaDesc *desc, |
| nzttPersona **persona); |
| |
| sword OCISecuritySetProtection(OCISecurity *osshandle, |
| OCIError *error_handle, |
| nzttPersona *persona, |
| nzttcef crypto_engine_function, |
| nztttdufmt data_unit_format, |
| nzttProtInfo *protection_info); |
| |
| sword OCISecurityGetProtection(OCISecurity *osshandle, |
| OCIError *error_handle, |
| nzttPersona *persona, |
| nzttcef crypto_engine_function, |
| nztttdufmt * data_unit_format_ptr, |
| nzttProtInfo *protection_info); |
| |
| sword OCISecurityRemoveIdentity(OCISecurity *osshandle, |
| OCIError *error_handle, |
| nzttIdentity **identity_ptr); |
| |
| sword OCISecurityCreateIdentity(OCISecurity *osshandle, |
| OCIError *error_handle, |
| nzttIdentType type, |
| nzttIdentityDesc *desc, |
| nzttIdentity **identity_ptr); |
| |
| sword OCISecurityAbortIdentity(OCISecurity *osshandle, |
| OCIError *error_handle, |
| nzttIdentity **identity_ptr); |
| |
| sword OCISecurityFreeIdentity(OCISecurity *osshandle, |
| OCIError *error_handle, |
| nzttIdentity **identity_ptr); |
| |
| |
| sword OCISecurityStoreTrustedIdentity(OCISecurity *osshandle, |
| OCIError *error_handle, |
| nzttIdentity **identity_ptr, |
| nzttPersona *persona); |
| |
| sword OCISecuritySign(OCISecurity *osshandle, |
| OCIError *error_handle, |
| nzttPersona *persona, |
| nzttces signature_state, |
| size_t input_length, |
| ub1 *input, |
| nzttBufferBlock *buffer_block); |
| |
| sword OCISecuritySignExpansion(OCISecurity *osshandle, |
| OCIError *error_handle, |
| nzttPersona *persona, |
| size_t inputlen, |
| size_t *signature_length); |
| |
| sword OCISecurityVerify(OCISecurity *osshandle, |
| OCIError *error_handle, |
| nzttPersona *persona, |
| nzttces signature_state, |
| size_t siglen, |
| ub1 *signature, |
| nzttBufferBlock *extracted_message, |
| boolean *verified, |
| boolean *validated, |
| nzttIdentity **signing_party_identity); |
| |
| sword OCISecurityValidate(OCISecurity *osshandle, |
| OCIError *error_handle, |
| nzttPersona *persona, |
| nzttIdentity *identity, |
| boolean *validated); |
| |
| sword OCISecuritySignDetached(OCISecurity *osshandle, |
| OCIError *error_handle, |
| nzttPersona *persona, |
| nzttces signature_state, |
| size_t input_length, |
| ub1 * input, |
| nzttBufferBlock *signature); |
| |
| sword OCISecuritySignDetExpansion(OCISecurity *osshandle, |
| OCIError *error_handle, |
| nzttPersona *persona, |
| size_t input_length, |
| size_t *required_buffer_length); |
| |
| sword OCISecurityVerifyDetached(OCISecurity *osshandle, |
| OCIError *error_handle, |
| nzttPersona *persona, |
| nzttces signature_state, |
| size_t data_length, |
| ub1 *data, |
| size_t siglen, |
| ub1 *signature, |
| boolean *verified, |
| boolean *validated, |
| nzttIdentity **signing_party_identity); |
| |
| sword OCISecurity_PKEncrypt(OCISecurity *osshandle, |
| OCIError *error_handle, |
| nzttPersona *persona, |
| size_t number_of_recipients, |
| nzttIdentity *recipient_list, |
| nzttces encryption_state, |
| size_t input_length, |
| ub1 *input, |
| nzttBufferBlock *encrypted_data); |
| |
| sword OCISecurityPKEncryptExpansion(OCISecurity *osshandle, |
| OCIError *error_handle, |
| nzttPersona *persona, |
| size_t number_recipients, |
| size_t input_length, |
| size_t *buffer_length_required); |
| |
| sword OCISecurityPKDecrypt(OCISecurity *osshandle, |
| OCIError *error_handle, |
| nzttPersona *persona, |
| nzttces encryption_state, |
| size_t input_length, |
| ub1 *input, |
| nzttBufferBlock *encrypted_data); |
| |
| sword OCISecurityEncrypt(OCISecurity *osshandle, |
| OCIError *error_handle, |
| nzttPersona *persona, |
| nzttces encryption_state, |
| size_t input_length, |
| ub1 *input, |
| nzttBufferBlock *encrypted_data); |
| |
| sword OCISecurityEncryptExpansion(OCISecurity *osshandle, |
| OCIError *error_handle, |
| nzttPersona *persona, |
| size_t input_length, |
| size_t *encrypted_data_length); |
| |
| sword OCISecurityDecrypt(OCISecurity *osshandle, |
| OCIError *error_handle, |
| nzttPersona *persona, |
| nzttces decryption_state, |
| size_t input_length, |
| ub1 *input, |
| nzttBufferBlock *decrypted_data); |
| |
| sword OCISecurityEnvelope(OCISecurity *osshandle, |
| OCIError *error_handle, |
| nzttPersona *persona, |
| size_t number_of_recipients, |
| nzttIdentity *identity, |
| nzttces encryption_state, |
| size_t input_length, |
| ub1 *input, |
| nzttBufferBlock *enveloped_data); |
| |
| sword OCISecurityDeEnvelope(OCISecurity *osshandle, |
| OCIError *error_handle, |
| nzttPersona *persona, |
| nzttces decryption_state, |
| size_t input_length, |
| ub1 *input, |
| nzttBufferBlock *output_message, |
| boolean *verified, |
| boolean *validated, |
| nzttIdentity **sender_identity); |
| |
| sword OCISecurityKeyedHash(OCISecurity *osshandle, |
| OCIError *error_handle, |
| nzttPersona *persona, |
| nzttces hash_state, |
| size_t input_length, |
| ub1 *input, |
| nzttBufferBlock *keyed_hash); |
| |
| sword OCISecurityKeyedHashExpansion(OCISecurity *osshandle, |
| OCIError *error_handle, |
| nzttPersona *persona, |
| size_t input_length, |
| size_t *required_buffer_length); |
| |
| sword OCISecurityHash(OCISecurity *osshandle, |
| OCIError *error_handle, |
| nzttPersona *persona, |
| nzttces hash_state, |
| size_t input, |
| ub1 *input_length, |
| nzttBufferBlock *hash); |
| |
| sword OCISecurityHashExpansion(OCISecurity *osshandle, |
| OCIError *error_handle, |
| nzttPersona *persona, |
| size_t input_length, |
| size_t *required_buffer_length); |
| |
| sword OCISecuritySeedRandom(OCISecurity *osshandle, |
| OCIError *error_handle, |
| nzttPersona *persona, |
| size_t seed_length, |
| ub1 *seed); |
| |
| sword OCISecurityRandomBytes(OCISecurity *osshandle, |
| OCIError *error_handle, |
| nzttPersona *persona, |
| size_t number_of_bytes_desired, |
| nzttBufferBlock *random_bytes); |
| |
| sword OCISecurityRandomNumber(OCISecurity *osshandle, |
| OCIError *error_handle, |
| nzttPersona *persona, |
| uword *random_number_ptr); |
| |
| sword OCISecurityInitBlock(OCISecurity *osshandle, |
| OCIError *error_handle, |
| nzttBufferBlock *buffer_block); |
| |
| sword OCISecurityReuseBlock(OCISecurity *osshandle, |
| OCIError *error_handle, |
| nzttBufferBlock *buffer_block); |
| |
| sword OCISecurityPurgeBlock(OCISecurity *osshandle, |
| OCIError *error_handle, |
| nzttBufferBlock *buffer_block); |
| |
| sword OCISecuritySetBlock(OCISecurity *osshandle, |
| OCIError *error_handle, |
| uword flags_to_set, |
| size_t buffer_length, |
| size_t used_buffer_length, |
| ub1 *buffer, |
| nzttBufferBlock *buffer_block); |
| |
| sword OCISecurityGetIdentity(OCISecurity *osshandle, |
| OCIError *error_handle, |
| size_t namelen, |
| OraText *distinguished_name, |
| nzttIdentity **identity); |
| |
| sword OCIAQEnq(OCISvcCtx *svchp, OCIError *errhp, OraText *queue_name, |
| OCIAQEnqOptions *enqopt, OCIAQMsgProperties *msgprop, |
| OCIType *payload_tdo, void **payload, void **payload_ind, |
| OCIRaw **msgid, ub4 flags); |
| |
| sword OCIAQDeq(OCISvcCtx *svchp, OCIError *errhp, OraText *queue_name, |
| OCIAQDeqOptions *deqopt, OCIAQMsgProperties *msgprop, |
| OCIType *payload_tdo, void **payload, void **payload_ind, |
| OCIRaw **msgid, ub4 flags); |
| |
| sword OCIAQEnqArray(OCISvcCtx *svchp, OCIError *errhp, OraText *queue_name, |
| OCIAQEnqOptions *enqopt, ub4 *iters, |
| OCIAQMsgProperties **msgprop, OCIType *payload_tdo, |
| void **payload, void **payload_ind, OCIRaw **msgid, |
| void *ctxp, OCICallbackAQEnq enqcbfp, ub4 flags); |
| |
| sword OCIAQEnqStreaming(OCISvcCtx *svchp, OCIError *errhp, OraText *queue_name, |
| OCIAQEnqOptions *enqopt, OCIType *payload_tdo, |
| void *ctxp, OCICallbackAQEnqStreaming enqcbfp, |
| ub4 flags); |
| |
| sword OCIAQDeqArray(OCISvcCtx *svchp, OCIError *errhp, OraText *queue_name, |
| OCIAQDeqOptions *deqopt, ub4 *iters, |
| OCIAQMsgProperties **msgprop, OCIType *payload_tdo, |
| void **payload, void **payload_ind, OCIRaw **msgid, |
| void *ctxp, OCICallbackAQDeq deqcbfp, ub4 flags); |
| |
| sword OCIAQListen(OCISvcCtx *svchp, OCIError *errhp, |
| OCIAQAgent **agent_list, ub4 num_agents, |
| sb4 wait, OCIAQAgent **agent, |
| ub4 flags); |
| |
| sword OCIAQListen2(OCISvcCtx *svchp, OCIError *errhp, |
| OCIAQAgent **agent_list, ub4 num_agents, |
| OCIAQListenOpts *lopts, OCIAQAgent **agent, |
| OCIAQLisMsgProps *lmops, ub4 flags); |
| |
| sword OCIAQGetReplayInfo(OCISvcCtx *svchp, OCIError *errhp, |
| OraText *queue_name, OCIAQAgent *sender, |
| ub4 replay_attribute, OraText *correlation, |
| ub2 *corr_len); |
| |
| sword OCIAQResetReplayInfo(OCISvcCtx *svchp, OCIError *errhp, |
| OraText *queue_name, OCIAQAgent *sender, |
| ub4 replay_attribute); |
| |
| sword OCIExtractInit(void *hndl, OCIError *err); |
| |
| sword OCIExtractTerm(void *hndl, OCIError *err); |
| |
| sword OCIExtractReset(void *hndl, OCIError *err); |
| |
| sword OCIExtractSetNumKeys(void *hndl, OCIError *err, uword numkeys); |
| |
| sword OCIExtractSetKey(void *hndl, OCIError *err, const OraText *name, |
| ub1 type, ub4 flag, const void *defval, |
| const sb4 *intrange, const OraText *const *strlist); |
| |
| sword OCIExtractFromFile(void *hndl, OCIError *err, ub4 flag, |
| OraText *filename); |
| |
| sword OCIExtractFromStr(void *hndl, OCIError *err, ub4 flag, OraText *input); |
| |
| sword OCIExtractToInt(void *hndl, OCIError *err, OraText *keyname, |
| uword valno, sb4 *retval); |
| |
| sword OCIExtractToBool(void *hndl, OCIError *err, OraText *keyname, |
| uword valno, ub1 *retval); |
| |
| sword OCIExtractToStr(void *hndl, OCIError *err, OraText *keyname, |
| uword valno, OraText *retval, uword buflen); |
| |
| sword OCIExtractToOCINum(void *hndl, OCIError *err, OraText *keyname, |
| uword valno, OCINumber *retval); |
| |
| sword OCIExtractToList(void *hndl, OCIError *err, uword *numkeys); |
| |
| sword OCIExtractFromList(void *hndl, OCIError *err, uword index, |
| OraText **name, |
| ub1 *type, uword *numvals, void ***values); |
| |
| /* Memory Related Service Interfaces */ |
| |
| sword OCIMemoryAlloc(void *hdl, OCIError *err, void **mem, |
| OCIDuration dur, ub4 size, ub4 flags); |
| |
| sword OCIMemoryResize(void *hdl, OCIError *err, void **mem, |
| ub4 newsize, ub4 flags); |
| |
| sword OCIMemoryFree(void *hdl, OCIError *err, void *mem); |
| |
| sword OCIContextSetValue(void *hdl, OCIError *err, OCIDuration duration, |
| ub1 *key, ub1 keylen, void *ctx_value); |
| |
| sword OCIContextGetValue(void *hdl, OCIError *err, ub1 *key, |
| ub1 keylen, void **ctx_value); |
| |
| sword OCIContextClearValue(void *hdl, OCIError *err, ub1 *key, |
| ub1 keylen); |
| |
| sword OCIContextGenerateKey(void *hdl, OCIError *err, ub4 *key); |
| |
| sword OCIMemorySetCurrentIDs(void *hdl, OCIError *err, |
| ub4 curr_session_id, ub4 curr_trans_id, |
| ub4 curr_stmt_id); |
| |
| sword OCIPicklerTdsCtxInit(OCIEnv *env, OCIError *err, |
| OCIPicklerTdsCtx **tdsc); |
| |
| sword OCIPicklerTdsCtxFree(OCIEnv *env, OCIError *err, OCIPicklerTdsCtx *tdsc); |
| |
| sword OCIPicklerTdsInit(OCIEnv *env, OCIError *err, OCIPicklerTdsCtx *tdsc, |
| OCIPicklerTds **tdsh); |
| |
| sword OCIPicklerTdsFree(OCIEnv *env, OCIError *err, OCIPicklerTds *tdsh); |
| |
| sword OCIPicklerTdsCreateElementNumber(OCIEnv *env, OCIError *err, |
| OCIPicklerTds *tdsh, ub1 prec, |
| sb1 scale, OCIPicklerTdsElement *elt); |
| |
| sword OCIPicklerTdsCreateElementChar(OCIEnv *env, OCIError *err, |
| OCIPicklerTds *tdsh, ub2 len, |
| OCIPicklerTdsElement *elt); |
| |
| sword OCIPicklerTdsCreateElementVarchar(OCIEnv *env, OCIError *err, |
| OCIPicklerTds *tdsh, ub2 len, |
| OCIPicklerTdsElement *elt); |
| |
| sword OCIPicklerTdsCreateElementRaw(OCIEnv *env, OCIError *err, |
| OCIPicklerTds *tdsh, ub2 len, |
| OCIPicklerTdsElement *elt); |
| |
| sword OCIPicklerTdsCreateElement(OCIEnv *env, OCIError *err, |
| OCIPicklerTds *tdsh, OCITypeCode dty, |
| OCIPicklerTdsElement *elt); |
| |
| sword OCIPicklerTdsAddAttr(OCIEnv *env, OCIError *err, |
| OCIPicklerTds *tdsh, OCIPicklerTdsElement elt); |
| |
| sword OCIPicklerTdsGenerate(OCIEnv *env, OCIError *err, |
| OCIPicklerTds *tdsh); |
| |
| sword OCIPicklerTdsGetAttr(OCIEnv *env, OCIError *err, |
| const OCIPicklerTds *tdsh, ub1 attrno, |
| OCITypeCode *typ, ub2 *len); |
| |
| sword OCIPicklerFdoInit(OCIEnv *env, OCIError *err, |
| OCIPicklerFdo **fdoh); |
| |
| sword OCIPicklerFdoFree(OCIEnv *env, OCIError *err, |
| OCIPicklerFdo *fdoh); |
| |
| sword OCIPicklerImageInit(OCIEnv *env, OCIError *err, |
| OCIPicklerFdo *fdoh, |
| OCIPicklerTds *tdsh, |
| OCIPicklerImage **imgh); |
| |
| sword OCIPicklerImageFree(OCIEnv *env, OCIError *err, |
| OCIPicklerImage *imgh); |
| |
| sword OCIPicklerImageAddScalar(OCIEnv *env, OCIError *err, |
| OCIPicklerImage *imgh, |
| void *scalar, ub4 len); |
| |
| sword OCIPicklerImageAddNullScalar(OCIEnv *env, OCIError *err, |
| OCIPicklerImage *imgh); |
| |
| sword OCIPicklerImageGenerate(OCIEnv *env, OCIError *err, |
| OCIPicklerImage *imgh); |
| |
| sword OCIPicklerImageGetScalarSize(OCIEnv *env, OCIError *err, |
| OCIPicklerImage *imgh, |
| ub4 attrno, ub4 *size); |
| |
| sword OCIPicklerImageGetScalar(OCIEnv *env, OCIError *err, |
| OCIPicklerImage *imgh, ub4 attrno, |
| void *buf, ub4 *len, OCIInd *ind); |
| |
| sword OCIPicklerImageCollBegin(OCIEnv *env, OCIError *err, |
| OCIPicklerImage *imgh, const OCIPicklerTds *colltdsh); |
| |
| sword OCIPicklerImageCollAddScalar( OCIEnv *env, OCIError *err, |
| OCIPicklerImage *imgh, void *scalar, |
| ub4 buflen, OCIInd ind); |
| |
| sword OCIPicklerImageCollEnd(OCIEnv *env, OCIError *err, |
| OCIPicklerImage *imgh); |
| |
| /* should take svcctx for locator stuff */ |
| sword OCIPicklerImageCollBeginScan(OCIEnv *env, OCIError *err, |
| OCIPicklerImage *imgh, const OCIPicklerTds *coll_tdsh, |
| ub4 attrnum, ub4 startidx, OCIInd *ind); |
| |
| sword OCIPicklerImageCollGetScalarSize(OCIEnv *env, OCIError *err, |
| const OCIPicklerTds *coll_tdsh, ub4 *size); |
| |
| sword OCIPicklerImageCollGetScalar(OCIEnv *env, OCIError *err, |
| OCIPicklerImage *imgh, void *buf, |
| ub4 *buflen, OCIInd *ind); |
| |
| sword OCIAnyDataGetType(OCISvcCtx *svchp, OCIError *errhp, OCIAnyData *sdata, |
| OCITypeCode *tc, OCIType **type); |
| |
| sword OCIAnyDataIsNull(OCISvcCtx *svchp, OCIError *errhp, OCIAnyData *sdata, |
| boolean *isnull); |
| |
| sword OCIAnyDataConvert(OCISvcCtx *svchp, OCIError *errhp, OCITypeCode tc, |
| OCIType *type, OCIDuration dur, void *ind, void *data_val, |
| ub4 len, OCIAnyData **sdata); |
| |
| sword OCIAnyDataBeginCreate(OCISvcCtx *svchp, OCIError *errhp, OCITypeCode tc, |
| OCIType *type, OCIDuration dur, OCIAnyData **sdata); |
| |
| sword OCIAnyDataDestroy(OCISvcCtx *svchp, OCIError *errhp, OCIAnyData *sdata); |
| |
| sword OCIAnyDataAttrSet(OCISvcCtx *svchp, OCIError *errhp, OCIAnyData *sdata, |
| OCITypeCode tc, OCIType *type, void *ind, void *attr_val, |
| ub4 length, boolean is_any); |
| |
| sword OCIAnyDataCollAddElem(OCISvcCtx *svchp, OCIError *errhp, |
| OCIAnyData *sdata, OCITypeCode tc, OCIType *type, void *ind, |
| void *attr_val, ub4 length, boolean is_any, boolean last_elem); |
| |
| sword OCIAnyDataEndCreate(OCISvcCtx *svchp, OCIError *errhp, |
| OCIAnyData *sdata); |
| |
| sword OCIAnyDataAccess(OCISvcCtx *svchp, OCIError *errhp, OCIAnyData *sdata, |
| OCITypeCode tc, OCIType *type, void *ind, void *attr_val, |
| ub4 *length); |
| |
| sword OCIAnyDataGetCurrAttrNum(OCISvcCtx *svchp, OCIError *errhp, |
| OCIAnyData *sdata, ub4 *attrnum); |
| |
| sword OCIAnyDataAttrGet(OCISvcCtx *svchp, OCIError *errhp, OCIAnyData *sdata, |
| OCITypeCode tc, OCIType *type, void *ind, void *attr_val, |
| ub4 *length, boolean is_any); |
| |
| sword OCIAnyDataCollGetElem(OCISvcCtx *svchp, OCIError *errhp, |
| OCIAnyData *sdata, |
| OCITypeCode tc, OCIType *type, void *ind, void *celem_val, |
| ub4 *length, boolean is_any); |
| |
| |
| /*------------------------ OCIAnyDataSet interfaces -------------------------*/ |
| |
| /* |
| NAME |
| OCIAnyDataSetBeginCreate - OCIAnyDataSet Begin Creation |
| PARAMETERS |
| svchp (IN/OUT) - The OCI service context. |
| errhp (IN/OUT) - The OCI error handle. If there is an error, it is |
| recorded in errhp and this function returns OCI_ERROR. |
| Diagnostic information can be obtained by calling |
| OCIErrorGet(). |
| typecode - typecode corresponding to the OCIAnyDataSet. |
| type (IN) - type corresponding to the OCIAnyDataSet. If the typecode |
| corresponds to a built-in type (OCI_TYPECODE_NUMBER etc.) |
| , this parameter can be NULL. It should be non NULL for |
| user defined types (OCI_TYPECODE_OBJECT, |
| OCI_TYPECODE_REF, collection types etc.) |
| dur (IN) - duration for which OCIAnyDataSet is allocated. |
| data_set (OUT) - Initialized OCIAnyDataSet. |
| RETURNS - error code |
| NOTES |
| This call allocates an OCIAnyDataSet for the duration of dur and |
| initializes it with the type information. The OCIAnyDataSet can hold |
| multiple instances of the given type. For performance reasons, the |
| OCIAnyDataSet will end up pointing to the passed in OCIType parameter. |
| It is the responsibility of the caller to ensure that the OCIType is |
| longer lived (has allocation duration >= the duration of the OCIAnyData |
| if the OCIType is a transient one, allocation/pin duration >= duration of |
| the OCIAnyData if the OCIType is a persistent one). |
| |
| */ |
| sword OCIAnyDataSetBeginCreate(OCISvcCtx *svchp, OCIError *errhp, |
| OCITypeCode typecode, const OCIType *type, OCIDuration dur, |
| OCIAnyDataSet ** data_set); |
| |
| /* |
| NAME |
| OCIAnyDataSetDestroy - OCIAnyDataSet Destroy |
| DESCRIPTION |
| This call frees the OCIAnyDataSet allocated using |
| OCIAnyDataSetBeginCreate(). |
| RETURNS |
| error code. |
| PARAMETERS |
| svchp (IN/OUT) - The OCI service context. |
| errhp (IN/OUT) - The OCI Error handle. |
| data_set (IN/OUT) - OCIAnyDataSet to be freed. |
| */ |
| sword OCIAnyDataSetDestroy(OCISvcCtx *svchp, OCIError *errhp, |
| OCIAnyDataSet *data_set); |
| |
| |
| /* |
| NAME |
| OCIAnyDataSetAddInstance - OCIAnyDataSet Add an instance |
| DESCRIPTION |
| This call adds a new skeleton instance to the OCIAnyDataSet and all the |
| attributes of the instance are set to NULL. It returns this skeleton |
| instance through the OCIAnyData parameter which can be constructed |
| subsequently by invoking the OCIAnyData API. |
| RETURNS |
| error code. |
| PARAMETERS |
| svchp (IN/OUT) - The OCI service context. |
| errhp (IN/OUT) - The OCI Error handle. |
| data_set (IN/OUT) - OCIAnyDataSet to which a new instance is added. |
| data (IN/OUT) - OCIAnyData corresponding to the newly added |
| instance. If (*data) is NULL, a new OCIAnyData will |
| be allocated for same duration as the OCIAnyDataSet. |
| If (*data) is not NULL, it will get reused. This |
| OCIAnyData can be subseqently constructed using the |
| OCIAnyDataConvert() call or it can be constructed |
| piece-wise using the OCIAnyDataAttrSet and |
| OCIAnyDataCollAddElem calls. |
| NOTES |
| No Destruction of the old value is done here. It is the responsibility of |
| the caller to destroy the old value pointed to by (*data) and set (*data) |
| to a null pointer before beginning to make a sequence of this call. No |
| deep copying (of OCIType information nor the data part.) is done in the |
| returned OCIAnyData. This OCIAnyData cannot be used beyond the allocation |
| duration of the OCIAnyDataSet (it is like a reference into the |
| OCIAnyDataSet). The returned OCIAnyData can be reused on subsequent calls |
| to this function, to sequentially add new data instances to the |
| OCIAnyDataSet. |
| */ |
| sword OCIAnyDataSetAddInstance(OCISvcCtx *svchp, OCIError *errhp, |
| OCIAnyDataSet *data_set, OCIAnyData **data); |
| |
| /* |
| NAME |
| OCIAnyDataSetEndCreate - OCIAnyDataSet End Creation process. |
| DESCRIPTION |
| This call marks the end of OCIAnyDataSet creation. It should be called |
| after constructing all of its instance(s). |
| RETURNS |
| error code. |
| PARAMETERS |
| svchp (IN/OUT) - The OCI service context. |
| errhp (IN/OUT) - The OCI error handle. If there is an error, it is |
| recorded in errhp and this function returns |
| OCI_ERROR. Diagnostic information can be obtained |
| by calling OCIErrorGet(). |
| data_set (IN/OUT) - OCIAnyDataSet that has been fully constructed. |
| */ |
| sword OCIAnyDataSetEndCreate(OCISvcCtx *svchp, OCIError *errhp, |
| OCIAnyDataSet *data_set); |
| |
| /* |
| NAME |
| OCIAnyDataSetGetType - OCIAnyDataSet Get Type of an OCIAnyDataSet |
| DESCRIPTION |
| Gets the Type corresponding to an OCIAnyDataSet. It returns the actual |
| pointer to the type maintained inside an OCIAnyDataSet. No copying is |
| done for performance reasons. The client is responsible for not using |
| this type once the OCIAnyDataSet is freed (or its duration ends). |
| RETURNS |
| error code. |
| PARAMETERS |
| svchp (IN/OUT) - The OCI service context. |
| errhp (IN/OUT) - The OCI Error handle. |
| data_set (IN) - Initialized OCIAnyDataSet. |
| tc (OUT) - The typecode of the type. |
| type (OUT) - The type corresponding to the OCIAnyDataSet. This |
| could be null if the OCIAnyData corresponds to a |
| built-in type. |
| */ |
| sword OCIAnyDataSetGetType (OCISvcCtx *svchp, OCIError *errhp, |
| OCIAnyDataSet *data_set, OCITypeCode *tc, OCIType **type); |
| |
| /* |
| NAME |
| OCIAnyDataSetGetCount - OCIAnyDataSet Get Count of instances. |
| DESCRIPTION |
| This call gets the number of instances in the OCIAnyDataSet. |
| RETURNS |
| error code. |
| PARAMETERS |
| svchp (IN/OUT) - OCI Service Context |
| errhp (IN/OUT) - OCI Error handle |
| data_set (IN) - Well formed OCIAnyDataSet. |
| count (OUT) - number of instances in OCIAnyDataSet |
| */ |
| sword OCIAnyDataSetGetCount(OCISvcCtx *svchp, OCIError *errhp, |
| OCIAnyDataSet *data_set, ub4 *count); |
| |
| /* |
| NAME |
| OCIAnyDataSetGetInstance - OCIAnyDataSet Get next instance. |
| DESCRIPTION |
| Only sequential access to the instances in an OCIAnyDataSet is allowed. |
| This call returns the OCIAnyData corresponding to an instance at the |
| current position and updates the current position. Subsequently, the |
| OCIAnyData access routines may be used to access the instance. |
| RETURNS |
| error code. Returns OCI_NO_DATA if the current position is at the end of |
| the set, OCI_SUCCESS otherwise. |
| PARAMETERS |
| svchp (IN/OUT) - OCI Service Context |
| errhp (IN/OUT) - OCI Error handle |
| data_set (IN) - Well formed OCIAnyDataSet |
| data (IN/OUT) - OCIAnyData corresponding to the instance. If (*data) |
| is NULL, a new OCIAnyData will be allocated for same |
| duration as the OCIAnyDataSet. If (*data) is not NULL |
| , it will get reused. This OCIAnyData can be |
| subsequently accessed using the OCIAnyDataAccess() |
| call or piece-wise by using the OCIAnyDataAttrGet() |
| call. |
| NOTE |
| No Destruction of the old value is done here. It is the responsibility of |
| the caller to destroy the old value pointed to by (*data) and set (*data) |
| to a null pointer before beginning to make a sequence of this call. No deep |
| copying (of OCIType information nor the data part.) is done in the returned |
| OCIAnyData. This OCIAnyData cannot be used beyond the allocation duration |
| of the OCIAnyDataSet (it is like a reference into the OCIAnyDataSet). The |
| returned OCIAnyData can be reused on subsequent calls to this function to |
| sequentially access the OCIAnyDataSet. |
| */ |
| sword OCIAnyDataSetGetInstance(OCISvcCtx *svchp, OCIError *errhp, |
| OCIAnyDataSet *data_set, OCIAnyData **data); |
| |
| /*--------------------- End of OCIAnyDataSet interfaces ---------------------*/ |
| |
| sword OCIFormatInit(void *hndl, OCIError *err); |
| |
| sword OCIFormatString(void *hndl, OCIError *err, OraText *buffer, |
| sbig_ora bufferLength, sbig_ora *returnLength, |
| const OraText *formatString, ...); |
| |
| sword OCIFormatTerm(void *hndl, OCIError *err); |
| |
| sword OCIFormatTUb1(void); |
| sword OCIFormatTUb2(void); |
| sword OCIFormatTUb4(void); |
| sword OCIFormatTUword(void); |
| sword OCIFormatTUbig_ora(void); |
| sword OCIFormatTSb1(void); |
| sword OCIFormatTSb2(void); |
| sword OCIFormatTSb4(void); |
| sword OCIFormatTSword(void); |
| sword OCIFormatTSbig_ora(void); |
| sword OCIFormatTEb1(void); |
| sword OCIFormatTEb2(void); |
| sword OCIFormatTEb4(void); |
| sword OCIFormatTEword(void); |
| sword OCIFormatTChar(void); |
| sword OCIFormatTText(void); |
| sword OCIFormatTDouble(void); |
| sword OCIFormatTDvoid(void); |
| sword OCIFormatTEnd(void); |
| |
| /*-------------------------- Extensions to XA interface ---------------------*/ |
| /* ------------------------- xaosvch ----------------------------------------*/ |
| /* |
| NAME |
| xaosvch - XA Oracle get SerViCe Handle |
| DESCRIPTION |
| Given a database name return the service handle that is used by the |
| XA library |
| NOTE |
| This macro has been provided for backward compatibilty with 8.0.2 |
| */ |
| OCISvcCtx *xaosvch(OraText *dbname); |
| |
| /* ------------------------- xaoSvcCtx --------------------------------------*/ |
| /* |
| NAME |
| xaoSvcCtx - XA Oracle get SerViCe ConTeXt |
| DESCRIPTION |
| Given a database name return the service handle that is used by the |
| XA library |
| NOTE |
| This routine has been provided for APs to get access to the service |
| handle that XA library uses. Without this routine APs must use SQLLIB |
| routine sqlld2 to get access to the Logon data area registered by the |
| XA library |
| */ |
| OCISvcCtx *xaoSvcCtx(OraText *dbname); |
| |
| /* ------------------------- xaoEnv -----------------------------------------*/ |
| /* |
| NAME |
| xaoEnv - XA Oracle get ENvironment Handle |
| DESCRIPTION |
| Given a database name return the environment handle that is used by the |
| XA library |
| NOTE |
| This routine has been provided for APs to get access to the environment |
| handle that XA library uses. Without this routine APs must use SQLLIB |
| routine sqlld2 to get access to the Logon data area registered by the |
| XA library |
| */ |
| OCIEnv *xaoEnv(OraText *dbname); |
| |
| /* ------------------------- xaosterr ---------------------------------------*/ |
| /* |
| NAME |
| xaosterr - XA Oracle get xa STart ERRor code |
| DESCRIPTION |
| Given an oracle error code return the XA error code |
| */ |
| int xaosterr(OCISvcCtx *svch, sb4 error); |
| /*-------------------------- End Extensions ---------------------------------*/ |
| /*---------------------- Extensions to NLS cartridge service ----------------*/ |
| /* ----------------------- OCINlsGetInfo ------------------------------------*/ |
| /* |
| NAME |
| OCINlsGetInfo - Get NLS info from OCI environment handle |
| REMARKS |
| This function generates language information specified by item from OCI |
| environment handle envhp into an array pointed to by buf within size |
| limitation as buflen. |
| RETURNS |
| OCI_SUCCESS, OCI_INVALID_HANDLE, or OCI_ERROR on wrong item. |
| envhp(IN/OUT) |
| OCI environment handle. |
| errhp(IN/OUT) |
| The OCI error handle. If there is an error, it is record in errhp and |
| this function returns a NULL pointer. Diagnostic information can be |
| obtained by calling OCIErrorGet(). |
| buf(OUT) |
| Pointer to the destination buffer. |
| buflen(IN) |
| The size of destination buffer. The maximum length for each information |
| is 32 bytes. |
| item(IN) |
| It specifies to get which item in OCI environment handle and can be one |
| of following values: |
| OCI_NLS_DAYNAME1 : Native name for Monday. |
| OCI_NLS_DAYNAME2 : Native name for Tuesday. |
| OCI_NLS_DAYNAME3 : Native name for Wednesday. |
| OCI_NLS_DAYNAME4 : Native name for Thursday. |
| OCI_NLS_DAYNAME5 : Native name for Friday. |
| OCI_NLS_DAYNAME6 : Native name for for Saturday. |
| OCI_NLS_DAYNAME7 : Native name for for Sunday. |
| OCI_NLS_ABDAYNAME1 : Native abbreviated name for Monday. |
| OCI_NLS_ABDAYNAME2 : Native abbreviated name for Tuesday. |
| OCI_NLS_ABDAYNAME3 : Native abbreviated name for Wednesday. |
| OCI_NLS_ABDAYNAME4 : Native abbreviated name for Thursday. |
| OCI_NLS_ABDAYNAME5 : Native abbreviated name for Friday. |
| OCI_NLS_ABDAYNAME6 : Native abbreviated name for for Saturday. |
| OCI_NLS_ABDAYNAME7 : Native abbreviated name for for Sunday. |
| OCI_NLS_MONTHNAME1 : Native name for January. |
| OCI_NLS_MONTHNAME2 : Native name for February. |
| OCI_NLS_MONTHNAME3 : Native name for March. |
| OCI_NLS_MONTHNAME4 : Native name for April. |
| OCI_NLS_MONTHNAME5 : Native name for May. |
| OCI_NLS_MONTHNAME6 : Native name for June. |
| OCI_NLS_MONTHNAME7 : Native name for July. |
| OCI_NLS_MONTHNAME8 : Native name for August. |
| OCI_NLS_MONTHNAME9 : Native name for September. |
| OCI_NLS_MONTHNAME10 : Native name for October. |
| OCI_NLS_MONTHNAME11 : Native name for November. |
| OCI_NLS_MONTHNAME12 : Native name for December. |
| OCI_NLS_ABMONTHNAME1 : Native abbreviated name for January. |
| OCI_NLS_ABMONTHNAME2 : Native abbreviated name for February. |
| OCI_NLS_ABMONTHNAME3 : Native abbreviated name for March. |
| OCI_NLS_ABMONTHNAME4 : Native abbreviated name for April. |
| OCI_NLS_ABMONTHNAME5 : Native abbreviated name for May. |
| OCI_NLS_ABMONTHNAME6 : Native abbreviated name for June. |
| OCI_NLS_ABMONTHNAME7 : Native abbreviated name for July. |
| OCI_NLS_ABMONTHNAME8 : Native abbreviated name for August. |
| OCI_NLS_ABMONTHNAME9 : Native abbreviated name for September. |
| OCI_NLS_ABMONTHNAME10 : Native abbreviated name for October. |
| OCI_NLS_ABMONTHNAME11 : Native abbreviated name for November. |
| OCI_NLS_ABMONTHNAME12 : Native abbreviated name for December. |
| OCI_NLS_YES : Native string for affirmative response. |
| OCI_NLS_NO : Native negative response. |
| OCI_NLS_AM : Native equivalent string of AM. |
| OCI_NLS_PM : Native equivalent string of PM. |
| OCI_NLS_AD : Native equivalent string of AD. |
| OCI_NLS_BC : Native equivalent string of BC. |
| OCI_NLS_DECIMAL : decimal character. |
| OCI_NLS_GROUP : group separator. |
| OCI_NLS_DEBIT : Native symbol of debit. |
| OCI_NLS_CREDIT : Native sumbol of credit. |
| OCI_NLS_DATEFORMAT : Oracle date format. |
| OCI_NLS_INT_CURRENCY: International currency symbol. |
| OCI_NLS_LOC_CURRENCY : Locale currency symbol. |
| OCI_NLS_LANGUAGE : Language name. |
| OCI_NLS_ABLANGUAGE : Abbreviation for language name. |
| OCI_NLS_TERRITORY : Territory name. |
| OCI_NLS_CHARACTER_SET : Character set name. |
| OCI_NLS_LINGUISTIC : Linguistic name. |
| OCI_NLS_CALENDAR : Calendar name. |
| OCI_NLS_DUAL_CURRENCY : Dual currency symbol. |
| */ |
| sword OCINlsGetInfo(void *envhp, OCIError *errhp, OraText *buf, |
| size_t buflen, ub2 item); |
| |
| /* ----------------------- OCINlsNumericInfoGet -----------------------------*/ |
| /* |
| NAME |
| OCINlsNumericInfoGet - Get NLS numeric info from OCI environment handle |
| REMARKS |
| This function generates numeric language information specified by item |
| from OCI environment handle envhp into an output number variable. |
| RETURNS |
| OCI_SUCCESS, OCI_INVALID_HANDLE, or OCI_ERROR on wrong item. |
| envhp(IN/OUT) |
| OCI environment handle. If handle invalid, returns OCI_INVALID_HANDLE. |
| errhp(IN/OUT) |
| The OCI error handle. If there is an error, it is record in errhp and |
| this function returns a NULL pointer. Diagnostic information can be |
| obtained by calling OCIErrorGet(). |
| val(OUT) |
| Pointer to the output number variable. On OCI_SUCCESS return, it will |
| contain the requested NLS numeric info. |
| item(IN) |
| It specifies to get which item in OCI environment handle and can be one |
| of following values: |
| OCI_NLS_CHARSET_MAXBYTESZ : Maximum character byte size for OCI |
| environment or session handle charset |
| OCI_NLS_CHARSET_FIXEDWIDTH: Character byte size for fixed-width charset; |
| 0 for variable-width charset |
| */ |
| sword OCINlsNumericInfoGet(void *envhp, OCIError *errhp, sb4 *val, ub2 item); |
| |
| /* ----------------------- OCINlsCharSetNameToId ----------------------------*/ |
| /* |
| NAME |
| OCINlsCharSetNameToId - Get Oracle charset id given Oracle charset name |
| REMARKS |
| This function will get the Oracle character set id corresponding to |
| the given Oracle character set name. |
| RETURNS |
| Oracle character set id for the given Oracle character set name if |
| character set name and OCI handle are valid; otherwise returns 0. |
| envhp(IN/OUT) |
| OCI environment handle. |
| name(IN) |
| Pointer to a null-terminated Oracle character set name whose id |
| will be returned. |
| */ |
| ub2 OCINlsCharSetNameToId(void *envhp, const oratext *name); |
| |
| /* ----------------------- OCINlsCharSetIdToName ----------------------------*/ |
| /* |
| NAME |
| OCINlsCharSetIdToName - Get Oracle charset name given Oracle charset id |
| REMARKS |
| This function will get the Oracle character set name corresponding to |
| the given Oracle character set id. |
| RETURNS |
| OCI_SUCCESS, OCI_INVALID_HANDLE, or OCI_ERROR |
| envhp(IN/OUT) |
| OCI environment handle. If handle invalid, returns OCI_INVALID_HANDLE. |
| buf(OUT) |
| Pointer to the destination buffer. On OCI_SUCCESS return, it will contain |
| the null-terminated string for character set name. |
| buflen(IN) |
| Size of destination buffer. Recommended size is OCI_NLS_MAXBUFSZ for |
| guarantee to store an Oracle character set name. If it's smaller than |
| the length of the character set name, the function will return OCI_ERROR. |
| id(IN) |
| Oracle character set id. |
| */ |
| sword OCINlsCharSetIdToName(void *envhp, oratext *buf, size_t buflen, ub2 id); |
| |
| /* ----------------------- OCINlsNameMap ------------------------------------*/ |
| /* |
| NAME |
| OCINlsNameMap - Map NLS naming from Oracle to other standards and vice |
| versa |
| REMARKS |
| This function will map NLS naming from Oracle to other standards (such |
| as ISO, IANA) and vice versa. |
| RETURNS |
| OCI_SUCCESS, OCI_INVALID_HANDLE, or OCI_ERROR |
| envhp(IN/OUT) |
| OCI environment handle. If handle invalid, returns OCI_INVALID_HANDLE. |
| buf(OUT) |
| Pointer to the destination buffer. On OCI_SUCCESS return, it will |
| contain null-terminated string for requested mapped name. |
| buflen(IN) |
| The size of destination buffer. Recommended size is OCI_NLS_MAXBUFSZ |
| for guarantee to store an NLS name. If it is smaller than the length |
| of the name, the function will return OCI_ERROR. |
| srcbuf(IN) |
| Pointer to null-terminated NLS name. If it is not a valid name in its |
| define scope, the function will return OCI_ERROR. |
| flag(IN) |
| It specifies name mapping direction and can take the following values: |
| OCI_NLS_CS_IANA_TO_ORA : Map character set name from IANA to Oracle |
| OCI_NLS_CS_ORA_TO_IANA : Map character set name from Oracle to IANA |
| OCI_NLS_LANG_ISO_TO_ORA : Map language name from ISO to Oracle |
| OCI_NLS_LANG_ORA_TO_ISO : Map language name from Oracle to ISO |
| OCI_NLS_TERR_ISO_TO_ORA : Map territory name from ISO to Oracle |
| OCI_NLS_TERR_ORA_TO_ISO : Map territory name from Oracle to ISO |
| OCI_NLS_TERR_ISO3_TO_ORA : Map territory name from 3-letter ISO |
| abbreviation to Oracle |
| OCI_NLS_TERR_ORA_TO_ISO3 : Map territory name from Oracle to 3-letter |
| ISO abbreviation |
| */ |
| sword OCINlsNameMap(void *envhp, oratext *buf, size_t buflen, |
| const oratext *srcbuf, ub4 flag); |
| |
| /* -------------------- OCIMultiByteToWideChar ------------------------------*/ |
| /* |
| NAME |
| OCIMultiByteToWideChar - Convert a null terminated multibyte string into |
| wchar |
| REMARKS |
| This routine converts an entire null-terminated string into the wchar |
| format. The wchar output buffer will be null-terminated. |
| RETURNS |
| OCI_SUCCESS, OCI_INVALID_HANDLE or OCI_ERROR |
| envhp(IN/OUT) |
| OCI environment handle to determine the character set of string. |
| dst (OUT) |
| Destination buffer for wchar. |
| src (IN) |
| Source string to be converted. |
| rsize (OUT) |
| Number of characters converted including null-terminator. |
| If it is a NULL pointer, no number return |
| */ |
| sword OCIMultiByteToWideChar(void *envhp, OCIWchar *dst, const OraText *src, |
| size_t *rsize); |
| |
| |
| /* --------------------- OCIMultiByteInSizeToWideChar -----------------------*/ |
| /* |
| NAME |
| OCIMultiByteInSizeToWideChar - Convert a mulitbyte string in length into |
| wchar |
| REMARKS |
| This routine converts part of string into the wchar format. It will |
| convert as many complete characters as it can until it reaches output |
| buffer size or input buffer size or it reaches a null-terminator in |
| source string. The output buffer will be null-terminated if space permits. |
| If dstsz is zero, this function will only return number of characters not |
| including ending null terminator for converted string. |
| RETURNS |
| OCI_SUCCESS, OCI_INVALID_HANDLE or OCI_ERROR |
| envhp(IN/OUT) |
| OCI environment handle to determine the character set of string. |
| dst (OUT) |
| Pointer to a destination buffer for wchar. It can be NULL pointer when |
| dstsz is zero. |
| dstsz(IN) |
| Destination buffer size in character. If it is zero, this function just |
| returns number of characters will be need for the conversion. |
| src (IN) |
| Source string to be converted. |
| srcsz(IN) |
| Length of source string in byte. |
| rsize(OUT) |
| Number of characters written into destination buffer, or number of |
| characters for converted string is dstsz is zero. |
| If it is NULL pointer, nothing to return. |
| */ |
| sword OCIMultiByteInSizeToWideChar(void *envhp, OCIWchar *dst, |
| size_t dstsz, const OraText *src, |
| size_t srcsz, size_t *rsize); |
| |
| |
| /* ---------------------- OCIWideCharToMultiByte ----------------------------*/ |
| /* |
| NAME |
| OCIWideCharToMultiByte - Convert a null terminated wchar string into |
| multibyte |
| REMARKS |
| This routine converts an entire null-terminated wide character string into |
| multi-byte string. The output buffer will be null-terminated. |
| RETURNS |
| OCI_SUCCESS, OCI_INVALID_HANDLE or OCI_ERROR |
| envhp(IN/OUT) |
| OCI environment handle to determine the character set of string. |
| dst (OUT) |
| Destination buffer for multi-byte string. |
| src (IN) |
| Source wchar string to be converted. |
| rsize (OUT) |
| Number of bytes written into the destination buffer. |
| If it is NULL pointer, nothing to return. |
| */ |
| sword OCIWideCharToMultiByte(void *envhp, OraText *dst, const OCIWchar *src, |
| size_t *rsize); |
| |
| |
| /* ---------------------- OCIWideCharInSizeToMultiByte ----------------------*/ |
| /* |
| NAME |
| OCIWideCharInSizeToMultiByte - Convert a wchar string in length into |
| mulitbyte |
| REMARKS |
| This routine converts part of wchar string into the multi-byte format. |
| It will convert as many complete characters as it can until it reaches |
| output buffer size or input buffer size or it reaches a null-terminator |
| in source string. The output buffer will be null-terminated if space |
| permits. If dstsz is zero, the function just returns the size of byte not |
| including ending null-terminator need to store the converted string. |
| RETURNS |
| OCI_SUCCESS, OCI_INVALID_HANDLE or OCI_ERROR |
| envhp(IN/OUT) |
| OCI environment handle to determine the character set of string. |
| dst (OUT) |
| Destination buffer for multi-byte. It can be NULL pointer if dstsz is |
| zero. |
| dstsz(IN) |
| Destination buffer size in byte. If it is zero, it just returns the size |
| of bytes need for converted string. |
| src (IN) |
| Source wchar string to be converted. |
| srcsz(IN) |
| Length of source string in character. |
| rsize(OUT) |
| Number of bytes written into destination buffer, or number of bytes need |
| to store the converted string if dstsz is zero. |
| If it is NULL pointer, nothing to return. |
| */ |
| sword OCIWideCharInSizeToMultiByte(void *envhp, OraText *dst, |
| size_t dstsz, const OCIWchar *src, |
| size_t srcsz, size_t *rsize); |
| |
| |
| |
| /* ----------------------- OCIWideCharIsAlnum -------------------------------*/ |
| /* |
| NAME |
| OCIWideCharIsAlnum - test whether wc is a letter or decimal digit |
| REMARKS |
| It tests whether wc is a letter or decimal digit. |
| RETURNS |
| TRUE or FLASE. |
| envhp(IN/OUT) |
| OCI environment handle to determine the character set . |
| wc(IN) |
| Wchar for testing. |
| */ |
| boolean OCIWideCharIsAlnum(void *envhp, OCIWchar wc); |
| |
| |
| /* ----------------------- OCIWideCharIsAlpha -------------------------------*/ |
| /* |
| NAME |
| OCIWideCharIsAlpha - test whether wc is an alphabetic letter |
| REMARKS |
| It tests whether wc is an alphabetic letter |
| RETURNS |
| TRUE or FLASE. |
| envhp(IN/OUT) |
| OCI environment handle to determine the character set . |
| wc(IN) |
| Wchar for testing. |
| */ |
| boolean OCIWideCharIsAlpha(void *envhp, OCIWchar wc); |
| |
| |
| /* --------------------- OCIWideCharIsCntrl ---------------------------------*/ |
| /* |
| NAME |
| OCIWideCharIsCntrl - test whether wc is a control character |
| REMARKS |
| It tests whether wc is a control character. |
| RETURNS |
| TRUE or FLASE. |
| envhp(IN/OUT) |
| OCI environment handle to determine the character set . |
| wc(IN) |
| Wchar for testing. |
| */ |
| boolean OCIWideCharIsCntrl(void *envhp, OCIWchar wc); |
| |
| |
| /* ----------------------- OCIWideCharIsDigit -------------------------------*/ |
| /* |
| NAME |
| OCIWideCharIsDigit - test whether wc is a decimal digit character |
| REMARKS |
| It tests whether wc is a decimal digit character. |
| RETURNS |
| TRUE or FLASE. |
| envhp(IN/OUT) |
| OCI environment handle to determine the character set . |
| wc(IN) |
| Wchar for testing. |
| */ |
| boolean OCIWideCharIsDigit(void *envhp, OCIWchar wc); |
| |
| |
| /* ----------------------- OCIWideCharIsGraph -------------------------------*/ |
| /* |
| NAME |
| OCIWideCharIsGraph - test whether wc is a graph character |
| REMARKS |
| It tests whether wc is a graph character. A graph character is character |
| with a visible representation and normally includes alphabetic letter, |
| decimal digit, and punctuation. |
| RETURNS |
| TRUE or FLASE. |
| envhp(IN/OUT) |
| OCI environment handle to determine the character set . |
| wc(IN) |
| Wchar for testing. |
| */ |
| boolean OCIWideCharIsGraph(void *envhp, OCIWchar wc); |
| |
| |
| /* ----------------------- OCIWideCharIsLower -------------------------------*/ |
| /* |
| NAME |
| OCIWideCharIsLower - test whether wc is a lowercase letter |
| REMARKS |
| It tests whether wc is a lowercase letter. |
| RETURNS |
| TRUE or FLASE. |
| envhp(IN/OUT) |
| OCI environment handle to determine the character set . |
| wc(IN) |
| Wchar for testing. |
| */ |
| boolean OCIWideCharIsLower(void *envhp, OCIWchar wc); |
| |
| |
| /* ----------------------- OCIWideCharIsPrint -------------------------------*/ |
| /* |
| NAME |
| OCIWideCharIsPrint - test whether wc is a printable character |
| REMARKS |
| It tests whether wc is a printable character. |
| RETURNS |
| TRUE or FLASE. |
| envhp(IN/OUT) |
| OCI environment handle to determine the character set . |
| wc(IN) |
| Wchar for testing. |
| */ |
| boolean OCIWideCharIsPrint(void *envhp, OCIWchar wc); |
| |
| |
| /* ----------------------- OCIWideCharIsPunct -------------------------------*/ |
| /* |
| NAME |
| OCIWideCharIsPunct - test whether wc is a punctuation character |
| REMARKS |
| It tests whether wc is a punctuation character. |
| RETURNS |
| TRUE or FLASE. |
| envhp(IN/OUT) |
| OCI environment handle to determine the character set . |
| wc(IN) |
| Wchar for testing. |
| */ |
| boolean OCIWideCharIsPunct(void *envhp, OCIWchar wc); |
| |
| |
| /* ----------------------- OCIWideCharIsSpace -------------------------------*/ |
| /* |
| NAME |
| OCIWideCharIsSpace - test whether wc is a space character |
| REMARKS |
| It tests whether wc is a space character. A space character only causes |
| white space in displayed text(for example, space, tab, carriage return, |
| newline, vertical tab or form feed). |
| RETURNS |
| TRUE or FLASE. |
| envhp(IN/OUT) |
| OCI environment handle to determine the character set . |
| wc(IN) |
| Wchar for testing. |
| */ |
| boolean OCIWideCharIsSpace(void *envhp, OCIWchar wc); |
| |
| |
| /* ----------------------- OCIWideCharIsUpper -------------------------------*/ |
| /* |
| NAME |
| OCIWideCharIsUpper - test whether wc is a uppercase letter |
| REMARKS |
| It tests whether wc is a uppercase letter. |
| RETURNS |
| TRUE or FLASE. |
| envhp(IN/OUT) |
| OCI environment handle to determine the character set . |
| wc(IN) |
| Wchar for testing. |
| */ |
| boolean OCIWideCharIsUpper(void *envhp, OCIWchar wc); |
| |
| |
| /*----------------------- OCIWideCharIsXdigit -------------------------------*/ |
| /* |
| NAME |
| OCIWideCharIsXdigit - test whether wc is a hexadecimal digit |
| REMARKS |
| It tests whether wc is a hexadecimal digit ( 0-9, A-F, a-f ). |
| RETURNS |
| TRUE or FLASE. |
| envhp(IN/OUT) |
| OCI environment handle to determine the character set . |
| wc(IN) |
| Wchar for testing. |
| */ |
| boolean OCIWideCharIsXdigit(void *envhp, OCIWchar wc); |
| |
| |
| /* --------------------- OCIWideCharIsSingleByte ----------------------------*/ |
| /* |
| NAME |
| OCIWideCharIsSingleByte - test whether wc is a single-byte character |
| REMARKS |
| It tests whether wc is a single-byte character when converted into |
| multi-byte. |
| RETURNS |
| TRUE or FLASE. |
| envhp(IN/OUT) |
| OCI environment handle to determine the character set . |
| wc(IN) |
| Wchar for testing. |
| */ |
| boolean OCIWideCharIsSingleByte(void *envhp, OCIWchar wc); |
| |
| |
| /* ----------------------- OCIWideCharToLower -------------------------------*/ |
| /* |
| NAME |
| OCIWideCharToLower - Convert a wchar into the lowercase |
| REMARKS |
| If there is a lower-case character mapping for wc in the specified locale, |
| it will return the lower-case in wchar, else return wc itself. |
| RETURNS |
| A wchar |
| envhp(IN/OUT) |
| OCI environment handle to determine the character set . |
| wc(IN) |
| Wchar for lowercase mapping. |
| */ |
| OCIWchar OCIWideCharToLower(void *envhp, OCIWchar wc); |
| |
| |
| /* ----------------------- OCIWideCharToUpper -------------------------------*/ |
| /* |
| NAME |
| OCIWideCharToUpper - Convert a wchar into the uppercase |
| REMARKS |
| If there is a upper-case character mapping for wc in the specified locale, |
| it will return the upper-case in wchar, else return wc itself. |
| RETURNS |
| A wchar |
| envhp(IN/OUT) |
| OCI environment handle to determine the character set . |
| wc(IN) |
| Wchar for uppercase mapping. |
| */ |
| OCIWchar OCIWideCharToUpper(void *envhp, OCIWchar wc); |
| |
| |
| /* ----------------------- OCIWideCharStrcmp --------------------------------*/ |
| /* |
| NAME |
| OCIWideCharStrcmp - compare two null terminated wchar string |
| REMARKS |
| It compares two wchar string in binary ( based on wchar encoding value ), |
| linguistic, or case-insensitive. |
| RETURNS |
| 0, if wstr1 == wstr2. |
| Positive, if wstr1 > wstr2. |
| Negative, if wstr1 < wstr2. |
| envhp(IN/OUT) |
| OCI environment handle to determine the character set. |
| wstr1(IN) |
| Pointer to a null-terminated wchar string. |
| wstr2(IN) |
| Pointer to a null-terminated wchar string. |
| flag(IN) |
| It is used to decide the comparison method. It can be taken one of the |
| following values: |
| OCI_NLS_BINARY : for the binary comparison, this is default value. |
| OCI_NLS_LINGUISTIC : for linguistic comparison specified in the locale. |
| This flag can be ORed with OCI_NLS_CASE_INSENSITIVE for case-insensitive |
| comparison. |
| */ |
| int OCIWideCharStrcmp(void *envhp, const OCIWchar *wstr1, |
| const OCIWchar *wstr2, int flag); |
| |
| |
| /* ----------------------- OCIWideCharStrncmp -------------------------------*/ |
| /* |
| NAME |
| OCIWideCharStrncmp - compare twe wchar string in length |
| REMARKS |
| This function is similar to OCIWideCharStrcmp(), except that at most len1 |
| characters from wstr1 and len2 characters from wstr1 are compared. The |
| null-terminator will be taken into the comparison. |
| RETURNS |
| 0, if wstr1 = wstr2 |
| Positive, if wstr1 > wstr2 |
| Negative, if wstr1 < wstr2 |
| envhp(IN/OUT) |
| OCI environment handle to determine the character set . |
| wstr1(IN) |
| Pointer to the first wchar string |
| len1(IN) |
| The length for the first string for comparison |
| wstr2(IN) |
| Pointer to the second wchar string |
| len2(IN) |
| The length for the second string for comparison. |
| flag(IN) |
| It is used to decide the comparison method. It can be taken one of the |
| following values: |
| OCI_NLS_BINARY : for the binary comparison, this is default value. |
| OCI_NLS_LINGUISTIC : for linguistic comparison specified in the locale. |
| This flag can be ORed with OCI_NLS_CASE_INSENSITIVE for case-insensitive |
| comparison. |
| */ |
| int OCIWideCharStrncmp(void *envhp, const OCIWchar *wstr1, size_t len1, |
| const OCIWchar *wstr2, size_t len2, int flag); |
| |
| |
| /* ----------------------- OCIWideCharStrcat --------------------------------*/ |
| /* |
| NAME |
| OCIWideCharStrcat - concatenate two wchar strings |
| REMARKS |
| This function appends a copy of the wchar string pointed to by wsrcstr, |
| including the null-terminator to the end of wchar string pointed to by |
| wdststr. It returns the number of character in the result string not |
| including the ending null-terminator. |
| RETURNS |
| number of characters in the result string not including the ending |
| null-terminator. |
| envhp(IN/OUT) |
| OCI environment handle to determine the character set . |
| wdststr(IN/OUT) |
| Pointer to the destination wchar string for appending. |
| wsrcstr(IN) |
| Pointer to the source wchar string to append. |
| */ |
| size_t OCIWideCharStrcat(void *envhp, OCIWchar *wdststr, |
| const OCIWchar *wsrcstr); |
| |
| |
| /* ----------------------- OCIWideCharStrchr --------------------------------*/ |
| /* |
| NAME |
| OCIWideCharStrchr - Search the first occurrence of wchar in a wchar string |
| REMARKS |
| This function searchs for the first occurrence of wc in the wchar string |
| pointed to by wstr. It returns a pointer to the whcar if successful, or |
| a null pointer. |
| RETURNS |
| wchar pointer if successful, otherwise a null pointer. |
| envhp(IN/OUT) |
| OCI environment handle to determine the character set . |
| wstr(IN) |
| Pointer to the wchar string to search |
| wc(IN) |
| Wchar to search for. |
| */ |
| OCIWchar *OCIWideCharStrchr(void *envhp, const OCIWchar *wstr, |
| OCIWchar wc); |
| |
| |
| /* ----------------------- OCIWideCharStrcpy --------------------------------*/ |
| /* |
| NAME |
| OCIWideCharStrcpy - copy a wchar string |
| REMARKS |
| This function copies the wchar string pointed to by wsrcstr, including the |
| null-terminator, into the array pointed to by wdststr. It returns the |
| number of character copied not including the ending null-terminator. |
| RETURNS |
| number of characters copied not including the ending null-terminator. |
| envhp(IN/OUT) |
| OCI environment handle to determine the character set . |
| wdststr(OUT) |
| Pointer to the destination wchar buffer. |
| wsrcstr(IN) |
| Pointer to the source wchar string. |
| */ |
| size_t OCIWideCharStrcpy(void *envhp, OCIWchar *wdststr, |
| const OCIWchar *wsrcstr); |
| |
| |
| /* ----------------------- OCIWideCharStrlen --------------------------------*/ |
| /* |
| NAME |
| OCIWideCharStrlen - Return number of character in a wchar string |
| REMARKS |
| This function computes the number of characters in the wchar string |
| pointed to by wstr, not including the null-terminator, and returns |
| this number. |
| RETURNS |
| number of characters not including ending null-terminator. |
| envhp(IN/OUT) |
| OCI environment handle to determine the character set . |
| wstr(IN) |
| Pointer to the source wchar string. |
| */ |
| size_t OCIWideCharStrlen(void *envhp, const OCIWchar *wstr); |
| |
| |
| /* ----------------------- OCIWideCharStrncat -------------------------------*/ |
| /* |
| NAME |
| OCIWideCharStrncat - Concatenate wchar string in length |
| REMARKS |
| This function is similar to OCIWideCharStrcat(), except that at most n |
| characters from wsrcstr are appended to wdststr. Note that the |
| null-terminator in wsrcstr will stop appending. wdststr will be |
| null-terminated.. |
| RETURNS |
| Number of characters in the result string not including the ending |
| null-terminator. |
| envhp(IN/OUT) |
| OCI environment handle to determine the character set . |
| wdststr(IN/OUT) |
| Pointer to the destination wchar string for appending. |
| wsrcstr(IN) |
| Pointer to the source wchar string to append. |
| n(IN) |
| Number of characters from wsrcstr to append. |
| */ |
| size_t OCIWideCharStrncat(void *envhp, OCIWchar *wdststr, |
| const OCIWchar *wsrcstr, size_t n); |
| |
| |
| /* ----------------------- OCIWideCharStrncpy -------------------------------*/ |
| /* |
| NAME |
| OCIWideCharStrncpy - Copy wchar string in length |
| REMARKS |
| This function is similar to OCIWideCharStrcpy(), except that at most n |
| characters are copied from the array pointed to by wsrcstr to the array |
| pointed to by wdststr. Note that the null-terminator in wdststr will |
| stop coping and result string will be null-terminated. |
| RETURNS |
| number of characters copied not including the ending null-terminator. |
| envhp(IN/OUT) |
| OCI environment handle to determine the character set . |
| wdststr(OUT) |
| Pointer to the destination wchar buffer. |
| wsrcstr(IN) |
| Pointer to the source wchar string. |
| n(IN) |
| Number of characters from wsrcstr to copy. |
| */ |
| size_t OCIWideCharStrncpy(void *envhp, OCIWchar *wdststr, |
| const OCIWchar *wsrcstr, size_t n); |
| |
| |
| /* ----------------------- OCIWideCharStrrchr -------------------------------*/ |
| /* |
| NAME |
| OCIWideCharStrrchr - search the last occurrence of a wchar in wchar string |
| REMARKS |
| This function searchs for the last occurrence of wc in the wchar string |
| pointed to by wstr. It returns a pointer to the whcar if successful, or |
| a null pointer. |
| RETURNS |
| wchar pointer if successful, otherwise a null pointer. |
| envhp(IN/OUT) |
| OCI environment handle to determine the character set . |
| wstr(IN) |
| Pointer to the wchar string to search |
| wc(IN) |
| Wchar to search for. |
| */ |
| OCIWchar *OCIWideCharStrrchr(void *envhp, const OCIWchar *wstr, |
| OCIWchar wc); |
| |
| |
| /* --------------------- OCIWideCharStrCaseConversion -----------------------*/ |
| /* |
| NAME |
| OCIWideCharStrCaseConversion - convert a wchar string into lowercase or |
| uppercase |
| REMARKS |
| This function convert the wide char string pointed to by wsrcstr into the |
| uppercase or lowercase specified by flag and copies the result into the |
| array pointed to by wdststr. The result string will be null-terminated. |
| RETURNS |
| number of characters for result string not including null-terminator. |
| envhp(IN/OUT) |
| OCI environment handle. |
| wdststr(OUT) |
| Pointer to destination array. |
| wsrcstr(IN) |
| Pointer to source string. |
| flag(IN) |
| Specify the case to convert: |
| OCI_NLS_UPPERCASE : convert to uppercase. |
| OCI_NLS_LOWERCASE: convert to lowercase. |
| This flag can be ORed with OCI_NLS_LINGUISTIC to specify that the |
| linguistic setting in the locale will be used for case conversion. |
| */ |
| size_t OCIWideCharStrCaseConversion(void *envhp, OCIWchar *wdststr, |
| const OCIWchar *wsrcstr, ub4 flag); |
| |
| |
| /*---------------------- OCIWideCharDisplayLength ---------------------------*/ |
| /* |
| NAME |
| OCIWideCharDisplayLength - Calculate the display length for a wchar |
| REMARKS |
| This function determines the number of column positions required for wc |
| in display. It returns number of column positions, or 0 if wc is |
| null-terminator. |
| RETURNS |
| Number of display positions. |
| envhp(IN/OUT) |
| OCI environment handle to determine the character set . |
| wc(IN) |
| Wchar character. |
| */ |
| size_t OCIWideCharDisplayLength(void *envhp, OCIWchar wc ); |
| |
| |
| /*---------------------- OCIWideCharMultiByteLength -------------------------*/ |
| /* |
| NAME |
| OCIWideCharMultiByteLength - Determine byte size in multi-byte encoding |
| REMARKS |
| This function determines the number of byte required for wc in multi-byte |
| encoding. It returns number of bytes in multi-byte for wc. |
| RETURNS |
| Number of bytes. |
| envhp(IN/OUT) |
| OCI environment handle to determine the character set . |
| wc(IN) |
| Wchar character. |
| */ |
| size_t OCIWideCharMultiByteLength(void *envhp, OCIWchar wc); |
| |
| |
| /* ----------------------- OCIMultiByteStrcmp -------------------------------*/ |
| /* |
| NAME |
| OCIMultiByteStrcmp - Compare two multi-byte strings |
| REMARKS |
| It compares two multi-byte strings in binary ( based on encoding value ), |
| linguistic, or case-insensitive. |
| RETURNS |
| 0, if str1 == str2. |
| Positive, if str1 > str2. |
| Negative, if str1 < str2. |
| envhp(IN/OUT) |
| OCI environment handle to determine the character set. |
| str1(IN) |
| Pointer to a null-terminated string. |
| str2(IN) |
| Pointer to a null-terminated string. |
| flag(IN) |
| It is used to decide the comparison method. It can be taken one of the |
| following values: |
| OCI_NLS_BINARY: for the binary comparison, this is default value. |
| OCI_NLS_LINGUISTIC: for linguistic comparison specified in the locale. |
| This flag can be ORed with OCI_NLS_CASE_INSENSITIVE for case-insensitive |
| comparison. |
| */ |
| int OCIMultiByteStrcmp(void *envhp, const OraText *str1, |
| const OraText *str2, int flag); |
| |
| |
| /*----------------------- OCIMultiByteStrncmp -------------------------------*/ |
| /* |
| NAME |
| OCIMultiByteStrncmp - compare two strings in length |
| REMARKS |
| This function is similar to OCIMultiBytestrcmp(), except that at most |
| len1 bytes from str1 and len2 bytes from str2 are compared. The |
| null-terminator will be taken into the comparison. |
| RETURNS |
| 0, if str1 = str2 |
| Positive, if str1 > str2 |
| Negative, if str1 < str2 |
| envhp(IN/OUT) |
| OCI environment handle to determine the character set. |
| str1(IN) |
| Pointer to the first string |
| len1(IN) |
| The length for the first string for comparison |
| str2(IN) |
| Pointer to the second string |
| len2(IN) |
| The length for the second string for comparison. |
| flag(IN) |
| It is used to decide the comparison method. It can be taken one of the |
| following values: |
| OCI_NLS_BINARY: for the binary comparison, this is default value. |
| OCI_NLS_LINGUISTIC: for linguistic comparison specified in the locale. |
| This flag can be ORed with OCI_NLS_CASE_INSENSITIVE for case-insensitive |
| comparison. |
| */ |
| int OCIMultiByteStrncmp(void *envhp, const OraText *str1, size_t len1, |
| OraText *str2, size_t len2, int flag); |
| |
| |
| /*----------------------- OCIMultiByteStrcat --------------------------------*/ |
| /* |
| NAME |
| OCIMultiByteStrcat - concatenate multibyte strings |
| REMARKS |
| This function appends a copy of the multi-byte string pointed to by |
| srcstr, including the null-terminator to the end of string pointed to by |
| dststr. It returns the number of bytes in the result string not including |
| the ending null-terminator. |
| RETURNS |
| number of bytes in the result string not including the ending |
| null-terminator. |
| envhp(IN/OUT) |
| Pointer to OCI environment handle |
| dststr(IN/OUT) |
| Pointer to the destination multi-byte string for appending. |
| srcstr(IN) |
| Pointer to the source string to append. |
| */ |
| size_t OCIMultiByteStrcat(void *envhp, OraText *dststr, |
| const OraText *srcstr); |
| |
| |
| /*------------------------- OCIMultiByteStrcpy ------------------------------*/ |
| /* |
| NAME |
| OCIMultiByteStrcpy - copy multibyte string |
| REMARKS |
| This function copies the multi-byte string pointed to by srcstr, |
| including the null-terminator, into the array pointed to by dststr. It |
| returns the number of bytes copied not including the ending |
| null-terminator. |
| RETURNS |
| number of bytes copied not including the ending null-terminator. |
| envhp(IN/OUT) |
| Pointer to the OCI environment handle. |
| srcstr(OUT) |
| Pointer to the destination buffer. |
| dststr(IN) |
| Pointer to the source multi-byte string. |
| */ |
| size_t OCIMultiByteStrcpy(void *envhp, OraText *dststr, |
| const OraText *srcstr); |
| |
| |
| /*----------------------- OCIMultiByteStrlen --------------------------------*/ |
| /* |
| NAME |
| OCIMultiByteStrlen - Calculate multibyte string length |
| REMARKS |
| This function computes the number of bytes in the multi-byte string |
| pointed to by str, not including the null-terminator, and returns this |
| number. |
| RETURNS |
| number of bytes not including ending null-terminator. |
| str(IN) |
| Pointer to the source multi-byte string. |
| */ |
| size_t OCIMultiByteStrlen(void *envhp, const OraText *str); |
| |
| |
| /*----------------------- OCIMultiByteStrncat -------------------------------*/ |
| /* |
| NAME |
| OCIMultiByteStrncat - concatenate string in length |
| REMARKS |
| This function is similar to OCIMultiBytestrcat(), except that at most n |
| bytes from srcstr are appended to dststr. Note that the null-terminator in |
| srcstr will stop appending and the function will append as many character |
| as possible within n bytes. dststr will be null-terminated. |
| RETURNS |
| Number of bytes in the result string not including the ending |
| null-terminator. |
| envhp(IN/OUT) |
| Pointer to OCI environment handle. |
| srcstr(IN/OUT) |
| Pointer to the destination multi-byte string for appending. |
| dststr(IN) |
| Pointer to the source multi-byte string to append. |
| n(IN) |
| Number of bytes from srcstr to append. |
| */ |
| size_t OCIMultiByteStrncat(void *envhp, OraText *dststr, |
| const OraText *srcstr, size_t n); |
| |
| |
| /*----------------------- OCIMultiByteStrncpy -------------------------------*/ |
| /* |
| NAME |
| OCIMultiByteStrncpy - copy multibyte string in length |
| REMARKS |
| This function is similar to OCIMultiBytestrcpy(), except that at most n |
| bytes are copied from the array pointed to by srcstr to the array pointed |
| to by dststr. Note that the null-terminator in srcstr will stop coping and |
| the function will copy as many character as possible within n bytes. The |
| result string will be null-terminated. |
| RETURNS |
| number of bytes copied not including the ending null-terminator. |
| envhp(IN/OUT) |
| Pointer to a OCI environment handle. |
| dststr(IN) |
| Pointer to the source multi-byte string. |
| srcstr(OUT) |
| Pointer to the destination buffer. |
| n(IN) |
| Number of bytes from srcstr to copy. |
| */ |
| size_t OCIMultiByteStrncpy(void *envhp, OraText *dststr, |
| const OraText *srcstr, size_t n); |
| |
| |
| /*----------------------- OCIMultiByteStrnDisplayLength ---------------------*/ |
| /* |
| NAME |
| OCIMultiByteStrnDisplayLength - calculate the display length for a |
| multibyt string |
| REMARKS |
| This function returns the number of display positions occupied by the |
| complete characters within the range of n bytes. |
| RETURNS |
| number of display positions. |
| envhp(IN/OUT) |
| OCI environment handle. |
| str(IN) |
| Pointer to a multi-byte string. |
| n(IN) |
| Number of bytes to examine. |
| */ |
| size_t OCIMultiByteStrnDisplayLength(void *envhp, const OraText *str1, |
| size_t n); |
| |
| |
| /*---------------------- OCIMultiByteStrCaseConversion ---------------------*/ |
| /* |
| NAME |
| OCIMultiByteStrCaseConversion |
| REMARKS |
| This function convert the multi-byte string pointed to by srcstr into the |
| uppercase or lowercase specified by flag and copies the result into the |
| array pointed to by dststr. The result string will be null-terminated. |
| RETURNS |
| number of bytes for result string not including null-terminator. |
| envhp(IN/OUT) |
| OCI environment handle. |
| dststr(OUT) |
| Pointer to destination array. |
| srcstr(IN) |
| Pointer to source string. |
| flag(IN) |
| Specify the case to convert: |
| OCI_NLS_UPPERCASE: convert to uppercase. |
| OCI_NLS_LOWERCASE: convert to lowercase. |
| This flag can be ORed with OCI_NLS_LINGUISTIC to specify that the |
| linguistic setting in the locale will be used for case conversion. |
| */ |
| size_t OCIMultiByteStrCaseConversion(void *envhp, OraText *dststr, |
| const OraText *srcstr, ub4 flag); |
| |
| |
| /*------------------------- OCICharSetToUnicode -----------------------------*/ |
| /* |
| NAME |
| OCICharSetToUnicode - convert multibyte string into Unicode as UCS2 |
| REMARKS |
| This function converts a multi-byte string pointed to by src to Unicode |
| into the array pointed to by dst. The conversion will stop when it reach |
| to the source limitation or destination limitation. |
| The function will return number of characters converted into Unicode. |
| If dstlen is zero, it will just return the number of characters for the |
| result without real conversion. |
| RETURNS |
| OCI_SUCCESS, OCI_INVALID_HANDLE or OCI_ERROR |
| envhp(IN/OUT) |
| Pointer to an OCI environment handle |
| dst(OUT) |
| Pointer to a destination buffer |
| dstlen(IN) |
| Size of destination buffer in character |
| src(IN) |
| Pointer to multi-byte source string. |
| srclen(IN) |
| Size of source string in bytes. |
| rsize(OUT) |
| Number of characters converted. |
| If it is a NULL pointer, nothing to return. |
| */ |
| sword OCICharSetToUnicode(void *envhp, ub2 *dst, size_t dstlen, |
| const OraText *src, size_t srclen, size_t *rsize); |
| |
| |
| /*------------------------- OCIUnicodeToCharSet -----------------------------*/ |
| /* |
| NAME |
| OCIUnicodeToCharSet - convert Unicode into multibyte |
| REMARKS |
| This function converts a Unicode string pointed to by src to multi-byte |
| into the array pointed to by dst. The conversion will stop when it reach |
| to the source limitation or destination limitation. The function will |
| return number of bytes converted into multi-byte. If dstlen is zero, it |
| will just return the number of bytes for the result without real |
| conversion. If a Unicode character is not convertible for the character |
| set specified in OCI environment handle, a replacement character will be |
| used for it. In this case, OCICharSetConversionIsReplacementUsed() will |
| return ture. |
| RETURNS |
| OCI_SUCCESS, OCI_INVALID_HANDLE or OCI_ERROR |
| envhp(IN/OUT) |
| Pointer to an OCI environment handle. |
| dst(OUT) |
| Pointer to a destination buffer. |
| dstlen(IN) |
| Size of destination buffer in byte. |
| src(IN) |
| Pointer to a Unicode string. |
| srclen(IN) |
| Size of source string in characters. |
| rsize(OUT) |
| Number of bytes converted. |
| If it is a NULL pointer, nothing to return. |
| */ |
| sword OCIUnicodeToCharSet(void *envhp, OraText *dst, size_t dstlen, |
| const ub2 *src, size_t srclen, size_t *rsize); |
| |
| /*----------------------- OCINlsCharSetConvert ------------------------------*/ |
| /* |
| NAME |
| OCINlsCharSetConvert - convert between any two character set. |
| REMARKS |
| This function converts a string pointed to by src in the character set |
| specified with srcid to the array pointed to by dst in the character set |
| specified with dstid. The conversion will stop when it reaches the source |
| limitation or destination limitation. The function will return the number |
| of bytes converted into the destination buffer. Even though either source |
| or destination character set id is OCI_UTF16ID, given and return data |
| length will be represented with the byte length as this function is |
| intended for generic purpose. Note the conversion will not stop at null |
| data. |
| To get character set id from name, OCINlsCharSetNameToId can be used. |
| To check if derived data in the destination buffer contains any |
| replacement character resulting from conversion failure, |
| OCICharSetConversionIsReplacementUsed can be used to get the status. |
| Data alignment should be guaranteed by a caller. For example, UTF-16 data |
| should be aligned to ub2 type. |
| |
| RETURNS |
| OCI_SUCCESS or OCI_ERROR. |
| errhp(IN/OUT) |
| OCI error handle. If there is an error, it is recorded in errhp and this |
| function returns a NULL pointer. Diagnostic information can be obtained |
| by calling OCIErrorGet(). |
| dstid(IN) |
| Character set id for the destination buffer. |
| dstp(OUT) |
| Pointer to the destination buffer. |
| dstlen(IN) |
| The maximum byte size of destination buffer. |
| srcid(IN) |
| Character set id for the source buffer. |
| srcp(IN) |
| Pointer to the source buffer. |
| srclen(IN) |
| The length byte size of source buffer. |
| rsize(OUT) |
| The number of characters converted. If it is a NULL pointer, nothing to |
| return. |
| */ |
| sword OCINlsCharSetConvert(void *envhp, OCIError *errhp, |
| ub2 dstid, void *dstp, size_t dstlen, |
| ub2 srcid, const void *srcp, size_t srclen, |
| size_t *rsize); |
| |
| |
| /* ------------------- OCICharsetConversionIsReplacementUsed ----------------*/ |
| /* |
| NAME |
| OCICharsetConversionIsReplacementUsed - chech if replacement is used in |
| conversion |
| REMARKS |
| This function indicates whether or not the replacement character was used |
| for nonconvertible characters in character set conversion in last invoke |
| of OCICharsetUcs2ToMb(). |
| RETURNS |
| TRUE is the replacement character was used in last OCICharsetUcs2ToMb() |
| invoking, else FALSE. |
| envhp(IN/OUT) |
| OCI environment handle. This should be the first handle passed to |
| OCICharsetUcs2ToMb(). |
| */ |
| boolean OCICharSetConversionIsReplacementUsed(void *envhp); |
| |
| /*------------------- OCINlsEnvironmentVariableGet -----------------*/ |
| /* |
| NAME |
| OCINlsEnvironmentVariableGet - get a value of NLS environment variable. |
| |
| DESCRIPTION |
| This function retrieves a value of NLS environment variable to the buffer |
| pointed to by val. Data type is determined by the parameter specified by |
| item. Either numeric data or string data can be retrieved. |
| |
| RETURNS |
| OCI_SUCCESS or OCI_ERROR. |
| |
| PARAMETERS |
| valp(OUT) - |
| Pointer to the buffer. |
| size(IN) - |
| Size of the buffer. This argument is only applicable to string data type, |
| but not to numerical data, in such case, it is ignored. |
| item(IN) - |
| NLS item value, which can be one of following values: |
| OCI_NLS_CHARSET_ID - NLS_LANG character set id in ub2 data type. |
| OCI_NLS_NCHARSET_ID - NLS_NCHAR character set id in ub2 data type. |
| charset(IN) - |
| Character set id for retrieved string data. If it is 0, NLS_LANG will be |
| used. OCI_UTF16ID is a valid id. In case of numeric data, this argument |
| is ignored. |
| rsize(OUT) - |
| Size of return value. |
| |
| NOTE |
| This functions is mainly used for retrieving character set id from either |
| NLS_LANG or NLS_NCHAR environment variables. If NLS_LANG is not set, |
| the default character set id is returned. |
| For future extension, the buffer is capable for storing other data types. |
| */ |
| sword OCINlsEnvironmentVariableGet(void *valp, size_t size, ub2 item, |
| ub2 charset, size_t *rsize); |
| |
| |
| /*------------------------- OCIMessageOpen ----------------------------------*/ |
| /* |
| NAME |
| OCIMessageOpen - open a locale message file |
| REMARKS |
| This function opens a message handle for facility of product in a language |
| pointed to by envhp. It first try to open the message file corresponding |
| to envhp for the facility. If it successes, it will use that file to |
| initialize a message handle, else it will use the default message file |
| which is for American language for the facility. The function return a |
| pointer pointed to a message handle into msghp parameter. |
| RETURNS |
| OCI_SUCCESS, OCI_INVALID_HANDLE or OCI_ERROR |
| envhp(IN/OUT) |
| A pointer to OCI environment handle for message language. |
| errhp(IN/OUT) |
| The OCI error handle. If there is an error, it is record in errhp and this |
| function returns a NULL pointer. Diagnostic information can be obtained by |
| calling OCIErrorGet(). |
| msghp(OUT) |
| a message handle for return |
| product(IN) |
| A pointer to a product name. Product name is used to locate the directory |
| for message in a system dependent way. For example, in Solaris, the |
| directory of message files for the product `rdbms' is |
| `${ORACLE_HOME}/rdbms'. |
| facility(IN) |
| A pointer to a facility name in the product. It is used to construct a |
| message file name. A message file name follows the conversion with |
| facility as prefix. For example, the message file name for facility |
| `img' in American language will be `imgus.msb' where `us' is the |
| abbreviation of American language and `msb' as message binary file |
| extension. |
| dur(IN) |
| Duration for memory allocation for the return message handle. It can be |
| the following values: |
| OCI_DURATION_CALL |
| OCI_DURATION_STATEMENT |
| OCI_DURATION_SESSION |
| OCI_DURATION_TRANSACTION |
| For the detail description, please refer to Memory Related Service |
| Interfaces section. |
| */ |
| sword OCIMessageOpen(void *envhp, OCIError *errhp, OCIMsg **msghp, |
| const OraText *product, const OraText *facility, |
| OCIDuration dur); |
| |
| |
| /*------------------------- OCIMessageGet -----------------------------------*/ |
| /* |
| NAME |
| OCIMessageGet - get a locale message from a message handle |
| REMARKS |
| This function will get message with message number identified by msgno and |
| if buflen is not zero, the function will copy the message into the buffer |
| pointed to by msgbuf. If buflen is zero, the message will be copied into |
| a message buffer inside the message handle pointed to by msgh. For both |
| cases. it will return the pointer to the null-terminated message string. |
| If it cannot get the message required, it will return a NULL pointer. |
| RETURNS |
| A pointer to a null-terminated message string on success, otherwise a NULL |
| pointer. |
| msgh(IN/OUT) |
| Pointer to a message handle which was previously opened by |
| OCIMessageOpen(). |
| msgno(IN) |
| The message number for getting message. |
| msgbuf(OUT) |
| Pointer to a destination buffer to the message retrieved. If buflen is |
| zero, it can be NULL pointer. |
| buflen(IN) |
| The size of the above destination buffer. |
| */ |
| OraText *OCIMessageGet(OCIMsg *msgh, ub4 msgno, OraText *msgbuf, |
| size_t buflen); |
| |
| /*------------------------- OCIMessageClose ---------------------------------*/ |
| /* |
| NAME |
| OCIMessageClose - close a message handle |
| REMARKS |
| This function closes a message handle pointed to by msgh and frees any |
| memory associated with this handle. |
| RETURNS |
| OCI_SUCCESS, OCI_INVALID_HANDLE or OCI_ERROR |
| envhp(IN/OUT) |
| A pointer to OCI environment handle for message language. |
| errhp(IN/OUT) |
| The OCI error handle. If there is an error, it is record in errhp and this |
| function returns a NULL pointer. Diagnostic information can be obtained by |
| calling OCIErrorGet(). |
| msghp(IN/OUT) |
| A pointer to a message handle which was previously opened by |
| OCIMessageOpen(). |
| */ |
| sword OCIMessageClose(void *envhp, OCIError *errhp, OCIMsg *msghp); |
| |
| /*--------------- End of Extensions to NLS cartridge service ----------------*/ |
| |
| |
| /*----------------- Extensions to OCI Thread interface ---------------------*/ |
| /***************************************************************************** |
| DESCRIPTION |
| ****************************************************************************** |
| 1 Threads Interface |
| |
| The OCIThread package provides a number of commonly used threading |
| primitives for use by Oracle customers. It offers a portable interface to |
| threading capabilities native to various platforms. It does not implement |
| threading on platforms which do not have native threading capability. |
| |
| OCIThread does not provide a portable implementation of multithreaded |
| facilities. It only serves as a set of portable covers for native |
| multithreaded facilities. Therefore, platforms that do not have native |
| support for multi-threading will only be able to support a limited |
| implementation of OCIThread. As a result, products that rely on all of |
| OCIThread's functionality will not port to all platforms. Products that must |
| port to all platforms must use only a subset of OCIThread's functionality. |
| This issue is discussed further in later sections of this document. |
| |
| The OCIThread API is split into four main parts. Each part is described |
| briefly here. The following subsections describe each in greater detail. |
| |
| 1. Initialization and Termination Calls |
| |
| These calls deal with the initialization and termination of OCIThread. |
| Initialization of OCIThread initializes the OCIThread context which is |
| a member of the OCI environment or session handle. This context is |
| required for other OCIThread calls. |
| |
| 2. Passive Threading Primitives |
| |
| The passive threading primitives include primitives to manipulate mutual |
| exclusion (mutex) locks, thread ID's, and thread-specific data keys. |
| |
| The reason that these primitives are described as 'passive' is that while |
| their specifications allow for the existence of multiple threads, they do |
| not require it. This means that it is possible for these primitives to |
| be implemented according to specification in both single-threaded and |
| multi-threaded environments. |
| |
| As a result, OCIThread clients that use only these primitives will not |
| require the existence of multiple threads in order to work correctly, |
| i.e., they will be able to work in single-threaded environments without |
| branching code. |
| |
| 3. Active Threading Primitives |
| |
| Active threading primitives include primitives dealing with the creation, |
| termination, and other manipulation of threads. |
| |
| The reason that these primitives are described as 'active' is that they |
| can only be used in true multi-threaded environments. Their |
| specifications explicitly require that it be possible to have multiple |
| threads. If you need to determine at runtime whether or not you are in a |
| multi-threaded environment, call OCIThreadIsMulti() before calling an |
| OCIThread active primitive. |
| |
| |
| 1.1 Initialization & Termination |
| ================================== |
| |
| The types and functions described in this section are associated with the |
| initialization and termination of the OCIThread package. OCIThread must |
| be properly initialized before any of its functionality can be used. |
| OCIThread's process initialization function, 'OCIThreadProcessInit()', |
| must be called with care; see below. |
| |
| The observed behavior of the initialization and termination functions is the |
| same regardless of whether OCIThread is in single-threaded or multi-threaded |
| environment. It is OK to call the initialization functions from both generic |
| and operating system specific (OSD) code. |
| |
| 1.1.1 Types |
| |
| OCIThreadContext - OCIThread Context |
| ------------------------------------- |
| |
| Most calls to OCIThread functions take the OCI environment or session |
| handle as a parameter. The OCIThread context is part of the OCI |
| environment or session handle and it must be initialized by calling |
| 'OCIThreadInit()'. Termination of the OCIThread context occurs by calling |
| 'OCIThreadTerm()'. |
| |
| The OCIThread context is a private data structure. Clients must NEVER |
| attempt to examine the contents of the context. |
| |
| 1.1.2 OCIThreadProcessInit |
| |
| OCIThreadProcessInit - OCIThread Process INITialization |
| -------------------------------------------------------- |
| |
| Description |
| |
| This function should be called to perform OCIThread process |
| initialization. |
| |
| Prototype |
| |
| void OCIThreadProcessInit(); |
| |
| Returns |
| |
| Nothing. |
| |
| Notes |
| |
| Whether or not this function needs to be called depends on how OCI |
| Thread is going to be used. |
| |
| * In a single-threaded application, calling this function is optional. |
| If it is called at all, the first call to it must occur before calls |
| to any other OCIThread functions. Subsequent calls can be made |
| without restriction; they will not have any effect. |
| |
| * In a multi-threaded application, this function MUST be called. The |
| first call to it MUST occur 'strictly before' any other OCIThread |
| calls; i.e., no other calls to OCIThread functions (including other |
| calls to this one) can be concurrent with the first call. |
| Subsequent calls to this function can be made without restriction; |
| they will not have any effect. |
| |
| |
| 1.1.3 OCIThreadInit |
| |
| OCIThreadInit - OCIThread INITialize |
| ------------------------------------- |
| |
| Description |
| |
| This initializes OCIThread context. |
| |
| Prototype |
| |
| sword OCIThreadInit(void *hndl, OCIError *err); |
| |
| hndl(IN/OUT): The OCI environment or session handle. |
| |
| err(IN/OUT): The OCI error handle. If there is an error and OCI_ERROR |
| is returned, the error is recorded in err and diagnostic |
| information can be obtained by calling OCIErrorGet(). |
| |
| Returns |
| |
| OCI_SUCCESS, OCI_ERROR or OCI_INVALID_HANDLE. |
| |
| Notes |
| |
| It is illegal for OCIThread clients to try an examine the memory |
| pointed to by the returned pointer. |
| |
| It is safe to make concurrent calls to 'OCIThreadInit()'. Unlike |
| 'OCIThreadProcessInit()', there is no need to have a first call |
| that occurs before all the others. |
| |
| The first time 'OCIThreadInit()' is called, it initilaizes the OCI |
| Thread context. It also saves a pointer to the context in some system |
| dependent manner. Subsequent calls to 'OCIThreadInit()' will return |
| the same context. |
| |
| Each call to 'OCIThreadInit()' must eventually be matched by a call to |
| 'OCIThreadTerm()'. |
| |
| OCIThreadTerm - OCIThread TERMinate |
| ------------------------------------ |
| |
| Description |
| |
| This should be called to release the OCIThread context. It should be |
| called exactly once for each call made to 'OCIThreadInit()'. |
| |
| Prototype |
| |
| sword OCIThreadTerm(void *hndl, OCIError *err); |
| |
| hndl(IN/OUT): The OCI environment or session handle. |
| |
| err(IN/OUT): The OCI error handle. If there is an error and OCI_ERROR |
| is returned, the error is recorded in err and diagnostic |
| information can be obtained by calling OCIErrorGet(). |
| |
| Returns |
| |
| OCI_SUCCESS, OCI_ERROR or OCI_INVALID_HANDLE. |
| |
| Notes |
| |
| It is safe to make concurrent calls to 'OCIThreadTerm()'. |
| |
| 'OCIThreadTerm()' will not do anything until it has been called as |
| many times as 'OCIThreadInit()' has been called. When that happens, |
| it terminates the OCIThread layer and frees the memory allocated for |
| the context. Once this happens, the context should not be re-used. |
| It will be necessary to obtain a new one by calling 'OCIThreadInit()'. |
| |
| |
| OCIThreadIsMulti - OCIThread Is Multi-Threaded? |
| ------------------------------------------------ |
| |
| Description |
| |
| This tells the caller whether the application is running in a |
| multi-threaded environment or a single-threaded environment. |
| |
| Prototype |
| boolean OCIThreadIsMulti(void); |
| |
| Returns |
| |
| TRUE if the environment is multi-threaded; |
| FALSE if the environment is single-threaded. |
| |
| |
| 1.2 Passive Threading Primitives |
| ================================== |
| |
| 1.2.1 Types |
| |
| The passive threading primitives deal with the manipulation of mutex, |
| thread ID's, and thread-specific data. Since the specifications of these |
| primitives do not require the existence of multiple threads, they can be |
| used both on multithreaded and single-threaded platforms. |
| |
| 1.2.1.1 OCIThreadMutex - OCIThread Mutual Exclusion Lock |
| ----------------------------------------------------------- |
| |
| The type 'OCIThreadMutex' is used to represent a mutual exclusion lock |
| (mutex). A mutex is typically used for one of two purposes: (i) to |
| ensure that only one thread accesses a given set of data at a time, or |
| (ii) to ensure that only one thread executes a given critical section of |
| code at a time. |
| |
| Mutexes pointer can be declared as parts of client structures or as |
| stand-alone variables. Before they can be used, they must be initialized |
| using 'OCIThreadMutexInit()'. Once they are no longer needed, they must be |
| destroyed using 'OCIThreadMutexDestroy()'. A mutex pointer must NOT be |
| used after it is destroyed. |
| |
| A thread can acquire a mutex by using either 'OCIThreadMutexAcquire()' or |
| 'OCIThreadMutexTry()'. They both ensure that only one thread at a time is |
| allowed to hold a given mutex. A thread that holds a mutex can release it |
| by calling 'OCIThreadMutexRelease()'. |
| |
| |
| 1.2.1.2 OCIThreadKey - OCIThread Key for Thread-Specific Data |
| ---------------------------------------------------------------- |
| |
| A key can be thought of as a process-wide variable that has a |
| thread-specific value. What this means is that all the threads in a |
| process can use any given key. However, each thread can examine or modify |
| that key independently of the other threads. The value that a thread sees |
| when it examines the key will always be the same as the value that it last |
| set for the key. It will not see any values set for the key by the other |
| threads. |
| |
| The type of the value held by a key is a 'void *' generic pointer. |
| |
| Keys can be created using 'OCIThreadKeyInit()'. When a key is created, its |
| value is initialized to 'NULL' for all threads. |
| |
| A thread can set a key's value using 'OCIThreadKeySet()'. A thread can |
| get a key's value using 'OCIThreadKeyGet()'. |
| |
| The OCIThread key functions will save and retrieve data SPECIFIC TO THE |
| THREAD. When clients maintain a pool of threads and assign the threads to |
| different tasks, it *may not* be appropriate for a task to use OCIThread |
| key functions to save data associated with it. Here is a scenario of how |
| things can fail: A thread is assigned to execute the initialization of a |
| task. During the initialization, the task stored some data related to it |
| in the thread using OCIThread key functions. After the initialization, |
| the thread is returned back to the threads pool. Later, the threads pool |
| manager assigned another thread to perform some operations on the task, |
| and the task needs to retrieve those data it stored earlier in |
| initialization. Since the task is running in another thread, it will not |
| be able to retrieve the same data back! Applications that use thread |
| pools should be aware of this and be cautious when using OCIThread key |
| functions. |
| |
| |
| 1.2.1.3 OCIThreadKeyDestFunc - OCIThread Key Destructor Function Type |
| ------------------------------------------------------------------------ |
| |
| This is the type of a pointer to a key's destructor routine. Keys can be |
| associated with a destructor routine when they are created (see |
| 'OCIThreadKeyInit()'). |
| |
| A key's destructor routine will be called whenever a thread that has a |
| non-NULL value for the key terminates. |
| |
| The destructor routine returns nothing and takes one parameter. The |
| parameter will be the value that was set for key when the thread |
| terminated. |
| |
| The destructor routine is guaranteed to be called on a thread's value |
| in the key after the termination of the thread and before process |
| termination. No more precise guarantee can be made about the timing |
| of the destructor routine call; thus no code in the process may assume |
| any post-condition of the destructor routine. In particular, the |
| destructor is not guaranteed to execute before a join call on the |
| terminated thread returns. |
| |
| |
| 1.2.1.4 OCIThreadId - OCIThread Thread ID |
| -------------------------------------------- |
| |
| Type 'OCIThreadId' is the type that will be used to identify a thread. |
| At any given time, no two threads will ever have the same 'OCIThreadId'. |
| However, 'OCIThreadId' values can be recycled; i.e., once a thread dies, |
| a new thread may be created that has the same 'OCIThreadId' as the one |
| that died. In particular, the thread ID must uniquely identify a thread |
| T within a process, and it must be consistent and valid in all threads U |
| of the process for which it can be guaranteed that T is running |
| concurrently with U. The thread ID for a thread T must be retrievable |
| within thread T. This will be done via OCIThreadIdGet(). |
| |
| The 'OCIThreadId' type supports the concept of a NULL thread ID: the NULL |
| thread ID will never be the same as the ID of an actual thread. |
| |
| |
| |
| 1.2.2 Function prototypes for passive primitives |
| -------------------------------------------------- |
| |
| 1.2.2.1 Mutex functions |
| ------------------------- |
| |
| OCIThreadMutexInit - OCIThread MuteX Initialize |
| ----------------------------------------------- |
| |
| Description |
| |
| This allocate and initializes a mutex. All mutexes must be |
| initialized prior to use. |
| |
| Prototype |
| |
| sword OCIThreadMutexInit(void *hndl, OCIError *err, |
| OCIThreadMutex **mutex); |
| |
| hndl(IN/OUT): The OCI environment or session handle. |
| |
| err(IN/OUT): The OCI error handle. If there is an error and OCI_ERROR |
| is returned, the error is recorded in err and diagnostic |
| information can be obtained by calling OCIErrorGet(). |
| |
| mutex(OUT): The mutex to initialize. |
| |
| Returns |
| |
| OCI_SUCCESS, OCI_ERROR or OCI_INVALID_HANDLE. |
| |
| Notes |
| |
| Multiple threads must not initialize the same mutex simultaneously. |
| Also, a mutex must not be reinitialized until it has been destroyed (see |
| 'OCIThreadMutexDestroy()'). |
| |
| OCIThreadMutexDestroy - OCIThread MuteX Destroy |
| ----------------------------------------------- |
| |
| Description |
| |
| This destroys and deallocate a mutex. Each mutex must be destroyed |
| once it is no longer needed. |
| |
| Prototype |
| |
| sword OCIThreadMutexDestroy(void *hndl, OCIError *err, |
| OCIThreadMutex **mutex); |
| |
| hndl(IN/OUT): The OCI environment or session handle. |
| |
| err(IN/OUT): The OCI error handle. If there is an error and OCI_ERROR |
| is returned, the error is recorded in err and diagnostic |
| information can be obtained by calling OCIErrorGet(). |
| |
| mutex(IN/OUT): The mutex to destroy. |
| |
| Returns |
| |
| OCI_SUCCESS, OCI_ERROR or OCI_INVALID_HANDLE. |
| |
| Notes |
| |
| It is not legal to destroy a mutex that is uninitialized or is currently |
| held by a thread. The destruction of a mutex must not occur concurrently |
| with any other operations on the mutex. A mutex must not be used after |
| it has been destroyed. |
| |
| |
| OCIThreadMutexAcquire - OCIThread MuteX Acquire |
| ----------------------------------------------- |
| |
| Description |
| |
| This acquires a mutex for the thread in which it is called. If the mutex |
| is held by another thread, the calling thread is blocked until it can |
| acquire the mutex. |
| |
| Prototype |
| |
| sword OCIThreadMutexAcquire(void *hndl, OCIError *err, |
| OCIThreadMutex *mutex); |
| |
| hndl(IN/OUT): The OCI environment or session handle. |
| |
| err(IN/OUT): The OCI error handle. If there is an error, it is |
| recorded in err and this function returns OCI_ERROR. |
| Diagnostic information can be obtained by calling |
| OCIErrorGet(). |
| |
| mutex(IN/OUT): The mutex to acquire. |
| |
| Returns |
| |
| OCI_SUCCESS, OCI_ERROR or OCI_INVALID_HANDLE. |
| |
| Notes |
| |
| It is illegal to attempt to acquire an uninitialized mutex. |
| |
| This function's behavior is undefined if it is used by a thread to |
| acquire a mutex that is already held by that thread. |
| |
| |
| |
| OCIThreadMutexRelease - OCIThread MuteX Release |
| ----------------------------------------------- |
| |
| Description |
| |
| This releases a mutex. If there are any threads blocked on the mutex, |
| one of them will acquire it and become unblocked. |
| |
| Prototype |
| |
| sword OCIThreadMutexRelease(void *hndl, OCIError *err, |
| OCIThreadMutex *mutex); |
| |
| hndl(IN/OUT): The OCI environment or session handle. |
| |
| err(IN/OUT): The OCI error handle. If there is an error and OCI_ERROR |
| is returned, the error is recorded in err and diagnostic |
| information can be obtained by calling OCIErrorGet(). |
| |
| mutex(IN/OUT): The mutex to release. |
| |
| Returns |
| |
| OCI_SUCCESS, OCI_ERROR or OCI_INVALID_HANDLE. |
| |
| Notes |
| |
| It is illegal to attempt to release an uninitialized mutex. It is also |
| illegal for a thread to release a mutex that it does not hold. |
| |
| |
| OCIThreadKeyInit - OCIThread KeY Initialize |
| ------------------------------------------- |
| |
| Description |
| |
| This creates a key. Each call to this routine allocate and generates |
| a new key that is distinct from all other keys. |
| |
| Prototype |
| |
| sword OCIThreadKeyInit(void *hndl, OCIError *err, OCIThreadKey **key, |
| OCIThreadKeyDestFunc destFn); |
| |
| hndl(IN/OUT): The OCI environment or session handle. |
| |
| err(IN/OUT): The OCI error handle. If there is an error and OCI_ERROR |
| is returned, the error is recorded in err and diagnostic |
| information can be obtained by calling OCIErrorGet(). |
| |
| key(OUT): The 'OCIThreadKey' in which to create the new key. |
| |
| destFn(IN): The destructor for the key. NULL is permitted. |
| |
| Returns |
| |
| OCI_SUCCESS, OCI_ERROR or OCI_INVALID_HANDLE. |
| |
| Notes |
| |
| Once this function executes successfully, a pointer to an allocated and |
| initialized key is return. That key can be used with 'OCIThreadKeyGet()' |
| and 'OCIThreadKeySet()'. The initial value of the key will be 'NULL' for |
| all threads. |
| |
| It is illegal for this function to be called more than once to create the |
| same key (i.e., to be called more than once with the same value for the |
| 'key' parameter). |
| |
| If the 'destFn' parameter is not NULL, the routine pointed to by 'destFn' |
| will be called whenever a thread that has a non-NULL value for the key |
| terminates. The routine will be called with one parameter. The |
| parameter will be the key's value for the thread at the time at which the |
| thread terminated. |
| If the key does not need a destructor function, pass NULL for 'destFn'. |
| |
| |
| OCIThreadKeyDestroy - OCIThread KeY DESTROY |
| ------------------------------------------- |
| |
| Description |
| |
| Destroy and deallocate the key pointed to by 'key'. |
| |
| Prototype |
| |
| sword OCIThreadKeyDestroy(void *hndl, OCIError *err, |
| OCIThreadKey **key); |
| |
| hndl(IN/OUT): The OCI environment or session handle. |
| |
| err(IN/OUT): The OCI error handle. If there is an error and OCI_ERROR |
| is returned, the error is recorded in err and diagnostic |
| information can be obtained by calling OCIErrorGet(). |
| |
| key(IN/OUT): The 'OCIThreadKey' in which to destroy the key. |
| |
| Returns |
| |
| OCI_SUCCESS, OCI_ERROR or OCI_INVALID_HANDLE. |
| |
| Notes |
| |
| This is different from the destructor function callback passed to the |
| key create routine. This new destroy function 'OCIThreadKeyDestroy' is |
| used to terminate any resources OCI THREAD acquired when it created |
| 'key'. [The 'OCIThreadKeyDestFunc' callback type is a key VALUE |
| destructor; it does in no way operate on the key itself.] |
| |
| This must be called once the user has finished using the key. Not |
| calling the key destroy function may result in memory leaks. |
| |
| |
| |
| |
| 1.2.2.2 Thread Key operations |
| ------------------------------- |
| |
| OCIThreadKeyGet - OCIThread KeY Get value |
| ----------------------------------------- |
| |
| Description |
| |
| This gets the calling thread's current value for a key. |
| |
| Prototype |
| |
| sword OCIThreadKeyGet(void *hndl, OCIError *err, OCIThreadKey *key, |
| void **pValue); |
| |
| hndl(IN/OUT): The OCI environment or session handle. |
| |
| err(IN/OUT): The OCI error handle. If there is an error and OCI_ERROR |
| is returned, the error is recorded in err and diagnostic |
| information can be obtained by calling OCIErrorGet(). |
| |
| key(IN): The key. |
| |
| pValue(IN/OUT): The location in which to place the thread-specific |
| key value. |
| |
| Returns |
| |
| OCI_SUCCESS, OCI_ERROR or OCI_INVALID_HANDLE. |
| |
| Notes |
| |
| It is illegal to use this function on a key that has not been created |
| using 'OCIThreadKeyInit()'. |
| |
| If the calling thread has not yet assigned a value to the key, 'NULL' is |
| placed in the location pointed to by 'pValue'. |
| |
| |
| OCIThreadKeySet - OCIThread KeY Set value |
| ----------------------------------------- |
| |
| Description |
| |
| This sets the calling thread's value for a key. |
| |
| Prototype |
| |
| sword OCIThreadKeySet(void *hndl, OCIError *err, OCIThreadKey *key, |
| void *value); |
| |
| hndl(IN/OUT): The OCI environment or session handle. |
| |
| err(IN/OUT): The OCI error handle. If there is an error and OCI_ERROR |
| is returned, the error is recorded in err and diagnostic |
| information can be obtained by calling OCIErrorGet(). |
| |
| key(IN/OUT): The key. |
| |
| value(IN): The thread-specific value to set in the key. |
| |
| Returns |
| |
| OCI_SUCCESS, OCI_ERROR or OCI_INVALID_HANDLE. |
| |
| Notes |
| |
| It is illegal to use this function on a key that has not been created |
| using 'OCIThreadKeyInit()'. |
| |
| 1.2.2.3 Thread Id |
| -------------------- |
| |
| OCIThreadIdInit - OCIThread Thread Id INITialize |
| -------------------------------------------------- |
| |
| Description |
| |
| Allocate and initialize the thread id 'tid'. |
| |
| Prototype |
| |
| sword OCIThreadIdInit(void *hndl, OCIError *err, OCIThreadId **tid); |
| |
| hndl(IN/OUT): The OCI environment or session handle. |
| |
| err(IN/OUT): The OCI error handle. If there is an error and OCI_ERROR |
| is returned, the error is recorded in err and diagnostic |
| information can be obtained by calling OCIErrorGet(). |
| |
| tid (OUT): Pointer to the thread ID to initialize. |
| |
| Returns |
| |
| OCI_SUCCESS, OCI_ERROR or OCI_INVALID_HANDLE. |
| |
| |
| OCIThreadIdDestroy - OCIThread Thread Id DESTROY |
| -------------------------------------------------- |
| |
| Description |
| |
| Destroy and deallocate the thread id 'tid'. |
| |
| Prototype |
| |
| sword OCIThreadIdDestroy(void *hndl, OCIError *err, OCIThreadId **tid); |
| |
| hndl(IN/OUT): The OCI environment or session handle. |
| |
| err(IN/OUT): The OCI error handle. If there is an error and OCI_ERROR |
| is returned, the error is recorded in err and diagnostic |
| information can be obtained by calling OCIErrorGet(). |
| |
| tid(IN/OUT): Pointer to the thread ID to destroy. |
| |
| Returns |
| |
| OCI_SUCCESS, OCI_ERROR or OCI_INVALID_HANDLE. |
| |
| Note |
| |
| 'tid' should be initialized by OCIThreadIdInit(). |
| |
| |
| OCIThreadIdSet - OCIThread Thread Id Set |
| ----------------------------------------- |
| |
| Description |
| |
| This sets one 'OCIThreadId' to another. |
| |
| Prototype |
| |
| sword OCIThreadIdSet(void *hndl, OCIError *err, |
| OCIThreadId *tidDest, |
| OCIThreadId *tidSrc); |
| |
| hndl(IN/OUT): The OCI environment or session handle. |
| |
| err(IN/OUT): The OCI error handle. If there is an error and OCI_ERROR |
| is returned, the error is recorded in err and diagnostic |
| information can be obtained by calling OCIErrorGet(). |
| |
| tidDest(OUT): This should point to the location of the 'OCIThreadId' |
| to be set to. |
| |
| tidSrc(IN): This should point to the 'OCIThreadId' to set from. |
| |
| Returns |
| |
| OCI_SUCCESS, OCI_ERROR or OCI_INVALID_HANDLE. |
| |
| Notes |
| |
| 'tid' should be initialized by OCIThreadIdInit(). |
| |
| |
| OCIThreadIdSetNull - OCIThread Thread Id Set Null |
| --------------------------------------------------------- |
| |
| Description |
| |
| This sets the NULL thread ID to a given 'OCIThreadId'. |
| |
| Prototype |
| |
| sword OCIThreadIdSetNull(void *hndl, OCIError *err, |
| OCIThreadId *tid); |
| |
| hndl(IN/OUT): The OCI environment or session handle. |
| |
| err(IN/OUT): The OCI error handle. If there is an error, it is |
| recorded in err and this function returns OCI_ERROR. |
| Diagnostic information can be obtained by calling |
| OCIErrorGet(). |
| |
| tid(OUT): This should point to the 'OCIThreadId' in which to put |
| the NULL thread ID. |
| |
| Returns |
| |
| OCI_SUCCESS, OCI_ERROR or OCI_INVALID_HANDLE. |
| |
| Notes |
| |
| 'tid' should be initialized by OCIThreadIdInit(). |
| |
| |
| OCIThreadIdGet - OCIThread Thread Id Get |
| ------------------------------------------ |
| |
| Description |
| |
| This retrieves the 'OCIThreadId' of the thread in which it is called. |
| |
| Prototype |
| |
| sword OCIThreadIdGet(void *hndl, OCIError *err, |
| OCIThreadId *tid); |
| |
| hndl(IN/OUT): The OCI environment or session handle. |
| |
| err(IN/OUT): The OCI error handle. If there is an error and OCI_ERROR |
| is returned, the error is recorded in err and diagnostic |
| information can be obtained by calling OCIErrorGet(). |
| |
| tid(OUT): This should point to the location in which to place the |
| ID of the calling thread. |
| |
| Returns |
| |
| OCI_SUCCESS, OCI_ERROR or OCI_INVALID_HANDLE. |
| |
| Notes |
| |
| 'tid' should be initialized by OCIThreadIdInit(). |
| |
| When OCIThread is used in a single-threaded environment, |
| OCIThreadIdGet() will always place the same value in the location |
| pointed to by 'tid'. The exact value itself is not important. The |
| important thing is that it is not the same as the NULL thread ID and |
| that it is always the same value. |
| |
| |
| OCIThreadIdSame - OCIThread Thread Ids Same? |
| ---------------------------------------------- |
| |
| Description |
| |
| This determines whether or not two 'OCIThreadId's represent the same |
| thread. |
| |
| Prototype |
| |
| sword OCIThreadIdSame(void *hndl, OCIError *err, |
| OCIThreadId *tid1, OCIThreadId *tid2, |
| boolean *result); |
| |
| hndl(IN/OUT): The OCI environment or session handle. |
| |
| err(IN/OUT): The OCI error handle. If there is an error and OCI_ERROR |
| is returned, the error is recorded in err and diagnostic |
| information can be obtained by calling OCIErrorGet(). |
| |
| tid1(IN): Pointer to the first 'OCIThreadId'. |
| |
| tid2(IN): Pointer to the second 'OCIThreadId'. |
| |
| result(IN/OUT): Pointer to the result. |
| |
| Returns |
| |
| OCI_SUCCESS, OCI_ERROR or OCI_INVALID_HANDLE. |
| |
| Notes |
| |
| If 'tid1' and 'tid2' represent the same thread, 'result' is set to TRUE. |
| Otherwise, 'result' is set to FALSE. |
| |
| 'result' is set to TRUE if both 'tid1' and 'tid2' are the NULL thread ID. |
| |
| 'ti1d' and 'tid2' should be initialized by OCIThreadIdInit(). |
| |
| |
| OCIThreadIdNull - OCIThread Thread Id NULL? |
| --------------------------------------------- |
| |
| Description |
| |
| This determines whether or not a given 'OCIThreadId' is the NULL thread |
| ID. |
| |
| Prototype |
| |
| sword OCIThreadIdNull(void *hndl, OCIError *err, |
| OCIThreadId *tid, |
| boolean *result); |
| |
| hndl(IN/OUT): The OCI environment or session handle. |
| |
| err(IN/OUT): The OCI error handle. If there is an error and OCI_ERROR |
| is returned, the error is recorded in err and diagnostic |
| information can be obtained by calling OCIErrorGet(). |
| |
| tid(IN): Pointer to the 'OCIThreadId' to check. |
| |
| result(IN/OUT): Pointer to the result. |
| |
| Returns |
| |
| OCI_SUCCESS, OCI_ERROR or OCI_INVALID_HANDLE. |
| |
| Notes |
| |
| If 'tid' is the NULL thread ID, 'result' is set to TRUE. Otherwise, |
| 'result' is set to FALSE. |
| |
| 'tid' should be initialized by OCIThreadIdInit(). |
| |
| |
| 1.3 Active Threading Primitives |
| ================================= |
| |
| The active threading primitives deal with the manipulation of actual |
| threads. Because the specifications of most of these primitives require |
| that it be possible to have multiple threads, they work correctly only in |
| the enabled OCIThread; In the disabled OCIThread, they always return |
| failure. The exception is OCIThreadHandleGet(); it may be called in a |
| single-threaded environment, in which case it will have no effect. |
| |
| Active primitives should only be called by code running in a multi-threaded |
| environment. You can call OCIThreadIsMulti() to determine whether the |
| environment is multi-threaded or single-threaded. |
| |
| |
| 1.3.1 Types |
| -------------- |
| |
| 1.3.1.1 OCIThreadHandle - OCIThread Thread Handle |
| ------------------------------------------------------ |
| |
| Type 'OCIThreadHandle' is used to manipulate a thread in the active |
| primitives: OCIThreadJoin()and OCIThreadClose(). A thread handle opened by |
| OCIThreadCreate() must be closed in a matching call to |
| OCIThreadClose(). A thread handle is invalid after the call to |
| OCIThreadClose(). |
| |
| The distinction between a thread ID and a thread handle in OCIThread usage |
| follows the distinction between the thread ID and the thread handle on |
| Windows NT. On many platforms, the underlying native types are the same. |
| |
| |
| 1.3.2 Functions |
| ------------------ |
| |
| OCIThreadHndInit - OCIThread HaNDle Initialize |
| ---------------------------------------------- |
| |
| Description |
| |
| Allocate and initialize the thread handle. |
| |
| Prototype |
| |
| sword OCIThreadHndInit(void *hndl, OCIError *err, |
| OCIThreadHandle **thnd); |
| |
| hndl(IN/OUT): The OCI environment or session handle. |
| |
| err(IN/OUT): The OCI error handle. If there is an error and OCI_ERROR |
| is returned, the error is recorded in err and diagnostic |
| information can be obtained by calling OCIErrorGet(). |
| |
| thnd(OUT): The address of pointer to the thread handle to initialize. |
| |
| Returns |
| |
| OCI_SUCCESS, OCI_ERROR or OCI_INVALID_HANDLE. |
| |
| |
| OCIThreadHndDestroy - OCIThread HaNDle Destroy |
| ---------------------------------------------- |
| |
| Description |
| |
| Destroy and deallocate the thread handle. |
| |
| Prototype |
| |
| sword OCIThreadHndDestroy(void *hndl, OCIError *err, |
| OCIThreadHandle **thnd); |
| |
| hndl(IN/OUT): The OCI environment or session handle. |
| |
| err(IN/OUT): The OCI error handle. If there is an error and OCI_ERROR |
| is returned, the error is recorded in err and diagnostic |
| information can be obtained by calling OCIErrorGet(). |
| |
| thnd(IN/OUT): The address of pointer to the thread handle to destroy. |
| |
| Returns |
| |
| OCI_SUCCESS, OCI_ERROR or OCI_INVALID_HANDLE. |
| |
| Notes |
| |
| 'thnd' should be initialized by OCIThreadHndInit(). |
| |
| |
| OCIThreadCreate - OCIThread Thread Create |
| ----------------------------------------- |
| |
| Description |
| |
| This creates a new thread. |
| |
| Prototype |
| |
| sword OCIThreadCreate(void *hndl, OCIError *err, |
| void (*start)(void *), void *arg, |
| OCIThreadId *tid, OCIThreadHandle *tHnd); |
| |
| hndl(IN/OUT): The OCI environment or session handle. |
| |
| err(IN/OUT): The OCI error handle. If there is an error and OCI_ERROR |
| is returned, the error is recorded in err and diagnostic |
| information can be obtained by calling OCIErrorGet(). |
| |
| start(IN): The function in which the new thread should begin |
| execution. |
| |
| arg(IN): The argument to give the function pointed to by 'start'. |
| |
| tid(IN/OUT): If not NULL, gets the ID for the new thread. |
| |
| tHnd(IN/OUT): If not NULL, gets the handle for the new thread. |
| |
| Returns |
| |
| OCI_SUCCESS, OCI_ERROR or OCI_INVALID_HANDLE. |
| |
| Notes |
| |
| The new thread will start by executing a call to the function pointed |
| to by 'start' with the argument given by 'arg'. When that function |
| returns, the new thread will terminate. The function should not |
| return a value and should accept one parameter, a 'void *'. |
| |
| The call to OCIThreadCreate() must be matched by a call to |
| OCIThreadClose() if and only if tHnd is non-NULL. |
| |
| If tHnd is NULL, a thread ID placed in *tid will not be valid in the |
| calling thread because the timing of the spawned thread's termination |
| is unknown. |
| |
| 'tid' should be initialized by OCIThreadIdInit(). |
| |
| 'thnd' should be initialized by OCIThreadHndInit(). |
| |
| |
| |
| OCIThreadJoin - OCIThread Thread Join |
| ------------------------------------- |
| |
| Description |
| |
| This function allows the calling thread to 'join' with another thread. |
| It blocks the caller until the specified thread terminates. |
| |
| Prototype |
| |
| sword OCIThreadJoin(void *hndl, OCIError *err, OCIThreadHandle *tHnd); |
| |
| hndl(IN/OUT): The OCI environment or session handle. |
| |
| err(IN/OUT): The OCI error handle. If there is an error and OCI_ERROR |
| is returned, the error is recorded in err and diagnostic |
| information can be obtained by calling OCIErrorGet(). |
| |
| tHnd(IN): The 'OCIThreadHandle' of the thread to join with. |
| |
| Returns |
| |
| OCI_SUCCESS, OCI_ERROR or OCI_INVALID_HANDLE. |
| |
| Notes |
| |
| 'thnd' should be initialized by OCIThreadHndInit(). |
| |
| The result of multiple threads all trying to join with the same thread is |
| undefined. |
| |
| |
| OCIThreadClose - OCIThread Thread Close |
| --------------------------------------- |
| |
| Description |
| |
| This function should be called to close a thread handle. |
| |
| Prototype |
| |
| sword OCIThreadClose(void *hndl, OCIError *err, OCIThreadHandle *tHnd); |
| |
| hndl(IN/OUT): The OCI environment or session handle. |
| |
| err(IN/OUT): The OCI error handle. If there is an error and OCI_ERROR |
| is returned, the error is recorded in err and diagnostic |
| information can be obtained by calling OCIErrorGet(). |
| |
| tHnd(IN/OUT): The OCIThread thread handle to close. |
| |
| Returns |
| |
| OCI_SUCCESS, OCI_ERROR or OCI_INVALID_HANDLE. |
| |
| Notes |
| |
| 'thnd' should be initialized by OCIThreadHndInit(). |
| |
| Both thread handle and the thread ID that was returned by the same call |
| to OCIThreadCreate() are invalid after the call to OCIThreadClose(). |
| |
| |
| |
| OCIThreadHandleGet - OCIThread Thread Get Handle |
| ------------------------------------------------ |
| |
| Description |
| |
| Retrieve the 'OCIThreadHandle' of the thread in which it is called. |
| |
| Prototype |
| |
| sword OCIThreadHandleGet(void *hndl, OCIError *err, |
| OCIThreadHandle *tHnd); |
| |
| hndl(IN/OUT): The OCI environment or session handle. |
| |
| err(IN/OUT): The OCI error handle. If there is an error and OCI_ERROR |
| is returned, the error is recorded in err and diagnostic |
| information can be obtained by calling OCIErrorGet(). |
| |
| tHnd(IN/OUT): If not NULL, the location to place the thread |
| handle for the thread. |
| |
| Returns |
| |
| OCI_SUCCESS, OCI_ERROR or OCI_INVALID_HANDLE. |
| |
| Notes |
| |
| 'thnd' should be initialized by OCIThreadHndInit(). |
| |
| The thread handle 'tHnd' retrieved by this function must be closed |
| with OCIThreadClose() and destroyed by OCIThreadHndDestroy() after it |
| is used. |
| |
| |
| |
| |
| 1.4 Using OCIThread |
| ===================== |
| |
| This section summarizes some of the more important details relating to the use |
| of OCIThread. |
| |
| * Process initialization |
| |
| OCIThread only requires that the process initialization function |
| ('OCIThreadProcessInit()') be called when OCIThread is being used in a |
| multi-threaded application. Failing to call 'OCIThreadProcessInit()' in |
| a single-threaded application is not an error. |
| |
| * OCIThread initialization |
| |
| Separate calls to 'OCIThreadInit()' will all return the same OCIThread |
| context. |
| |
| Also, remember that each call to 'OCIThreadInit()' must eventually be |
| matched by a call to 'OCIThreadTerm()'. |
| |
| * Active vs. Passive Threading primitives |
| |
| OCIThread client code written without using any active primitives can be |
| compiled and used without change on both single-threaded and |
| multi-threaded platforms. |
| |
| OCIThread client code written using active primitives will only work |
| correctly on multi-threaded platforms. In order to write a version of the |
| same application to run on single-threaded platform, it is necessary to |
| branch the your code, whether by branching versions of the source file or |
| by branching at runtime with the OCIThreadIsMulti() call. |
| |
| ******************************************************************************/ |
| |
| /***************************************************************************** |
| ACTUAL PROTOTYPE DECLARATIONS |
| ******************************************************************************/ |
| |
| void OCIThreadProcessInit(); |
| |
| sword OCIThreadInit(void *hndl, OCIError *err); |
| |
| sword OCIThreadTerm(void *hndl, OCIError *err); |
| |
| boolean OCIThreadIsMulti(); |
| |
| sword OCIThreadMutexInit(void *hndl, OCIError *err, |
| OCIThreadMutex **mutex); |
| |
| sword OCIThreadMutexDestroy(void *hndl, OCIError *err, |
| OCIThreadMutex **mutex); |
| |
| sword OCIThreadMutexAcquire(void *hndl, OCIError *err, |
| OCIThreadMutex *mutex); |
| |
| sword OCIThreadMutexRelease(void *hndl, OCIError *err, |
| OCIThreadMutex *mutex); |
| |
| sword OCIThreadKeyInit(void *hndl, OCIError *err, OCIThreadKey **key, |
| OCIThreadKeyDestFunc destFn); |
| |
| sword OCIThreadKeyDestroy(void *hndl, OCIError *err, |
| OCIThreadKey **key); |
| |
| sword OCIThreadKeyGet(void *hndl, OCIError *err, OCIThreadKey *key, |
| void **pValue); |
| |
| sword OCIThreadKeySet(void *hndl, OCIError *err, OCIThreadKey *key, |
| void *value); |
| |
| sword OCIThreadIdInit(void *hndl, OCIError *err, OCIThreadId **tid); |
| |
| sword OCIThreadIdDestroy(void *hndl, OCIError *err, OCIThreadId **tid); |
| |
| sword OCIThreadIdSet(void *hndl, OCIError *err, |
| OCIThreadId *tidDest, OCIThreadId *tidSrc); |
| |
| sword OCIThreadIdSetNull(void *hndl, OCIError *err, OCIThreadId *tid); |
| |
| sword OCIThreadIdGet(void *hndl, OCIError *err, OCIThreadId *tid); |
| |
| sword OCIThreadIdSame(void *hndl, OCIError *err, |
| OCIThreadId *tid1, OCIThreadId *tid2, |
| boolean *result); |
| |
| sword OCIThreadIdNull(void *hndl, OCIError *err, |
| OCIThreadId *tid, boolean *result); |
| |
| sword OCIThreadHndInit(void *hndl, OCIError *err, OCIThreadHandle **thnd); |
| |
| sword OCIThreadHndDestroy(void *hndl, OCIError *err, OCIThreadHandle **thnd); |
| |
| sword OCIThreadCreate(void *hndl, OCIError *err, |
| void (*start)(void *), void *arg, |
| OCIThreadId *tid, OCIThreadHandle *tHnd); |
| |
| sword OCIThreadJoin(void *hndl, OCIError *err, OCIThreadHandle *tHnd); |
| |
| sword OCIThreadClose(void *hndl, OCIError *err, OCIThreadHandle *tHnd); |
| |
| sword OCIThreadHandleGet(void *hndl, OCIError *err, OCIThreadHandle *tHnd); |
| /*----------------- End OCI Thread interface Extensions ---------------------*/ |
| |
| /*------------------ Begin OCI Row Callback Interfaces ----------------------*/ |
| |
| typedef sword (*OCIBindRowCallback)(void *ctx); |
| typedef sword (*OCIFetchRowCallback)(void *ctx); |
| |
| /*------------------ Begin OCI Row Callback Interfaces ----------------------*/ |
| |
| /*--------------- Begin OCI Client Notification Interfaces ------------------*/ |
| |
| typedef ub4 (*OCISubscriptionNotify)(void *ctx, OCISubscription *subscrhp, |
| void *pay, ub4 payl, |
| void *desc, ub4 mode); |
| |
| sword OCISubscriptionRegister(OCISvcCtx *svchp, OCISubscription **subscrhpp, |
| ub2 count, OCIError *errhp, ub4 mode); |
| |
| |
| sword OCISubscriptionPost(OCISvcCtx *svchp, OCISubscription **subscrhpp, |
| ub2 count, OCIError *errhp, ub4 mode); |
| |
| sword OCISubscriptionUnRegister(OCISvcCtx *svchp, OCISubscription *subscrhp, |
| OCIError *errhp, ub4 mode); |
| |
| sword OCISubscriptionDisable(OCISubscription *subscrhp, |
| OCIError *errhp, ub4 mode); |
| |
| sword OCISubscriptionEnable(OCISubscription *subscrhp, |
| OCIError *errhp, ub4 mode); |
| |
| /*------------------- End OCI Publish/Subscribe Interfaces ------------------*/ |
| |
| /*----------------- Extensions to Datetime interfaces -----------------------*/ |
| /*--------------------- Actual Prototypes -----------------------------------*/ |
| sword OCIDateTimeGetTime(void *hndl, OCIError *err, OCIDateTime *datetime, |
| ub1 *hr, ub1 *mm, ub1 *ss, ub4 *fsec); |
| |
| sword OCIDateTimeGetDate(void *hndl, OCIError *err, const OCIDateTime *date, |
| sb2 *yr, ub1 *mnth, ub1 *dy ); |
| |
| sword OCIDateTimeGetTimeZoneOffset(void *hndl,OCIError *err, |
| const OCIDateTime *datetime, |
| sb1 *hr,sb1 *mm); |
| |
| sword OCIDateTimeConstruct(void *hndl,OCIError *err,OCIDateTime *datetime, |
| sb2 yr,ub1 mnth,ub1 dy,ub1 hr,ub1 mm,ub1 ss,ub4 fsec, |
| OraText *timezone,size_t timezone_length); |
| |
| sword OCIDateTimeSysTimeStamp(void *hndl, OCIError *err, |
| OCIDateTime *sys_date ); |
| |
| sword OCIDateTimeAssign(void *hndl, OCIError *err, const OCIDateTime *from, |
| OCIDateTime *to); |
| |
| sword OCIDateTimeToText(void *hndl, OCIError *err, const OCIDateTime *date, |
| const OraText *fmt, ub1 fmt_length, ub1 fsprec, |
| const OraText *lang_name, size_t lang_length, |
| ub4 *buf_size, OraText *buf ); |
| |
| sword OCIDateTimeFromText(void *hndl, OCIError *err, const OraText *date_str, |
| size_t dstr_length, const OraText *fmt, ub1 fmt_length, |
| const OraText *lang_name, size_t lang_length, OCIDateTime *date ); |
| |
| sword OCIDateTimeCompare(void *hndl, OCIError *err, const OCIDateTime *date1, |
| const OCIDateTime *date2, sword *result ); |
| |
| sword OCIDateTimeCheck(void *hndl, OCIError *err, const OCIDateTime *date, |
| ub4 *valid ); |
| |
| sword OCIDateTimeConvert(void *hndl, OCIError *err, OCIDateTime *indate, |
| OCIDateTime *outdate); |
| |
| sword OCIDateTimeSubtract(void *hndl, OCIError *err, OCIDateTime *indate1, |
| OCIDateTime *indate2, OCIInterval *inter); |
| |
| sword OCIDateTimeIntervalAdd(void *hndl, OCIError *err, OCIDateTime *datetime, |
| OCIInterval *inter, OCIDateTime *outdatetime); |
| |
| sword OCIDateTimeIntervalSub(void *hndl, OCIError *err, OCIDateTime *datetime, |
| OCIInterval *inter, OCIDateTime *outdatetime); |
| |
| sword OCIIntervalSubtract(void *hndl, OCIError *err, OCIInterval *minuend, |
| OCIInterval *subtrahend, OCIInterval *result ); |
| |
| sword OCIIntervalAdd(void *hndl, OCIError *err, OCIInterval *addend1, |
| OCIInterval *addend2, OCIInterval *result ); |
| |
| sword OCIIntervalMultiply(void *hndl, OCIError *err, const OCIInterval *inter, |
| OCINumber *nfactor, OCIInterval *result ); |
| |
| sword OCIIntervalDivide(void *hndl, OCIError *err, OCIInterval *dividend, |
| OCINumber *divisor, OCIInterval *result ); |
| |
| sword OCIIntervalCompare(void *hndl, OCIError *err, OCIInterval *inter1, |
| OCIInterval *inter2, sword *result ); |
| |
| sword OCIIntervalFromNumber(void *hndl, OCIError *err, OCIInterval *inter, |
| OCINumber *number); |
| |
| sword OCIIntervalFromText( void *hndl, OCIError *err, const OraText *inpstr, |
| size_t str_len, OCIInterval *result ); |
| |
| sword OCIIntervalToText( void *hndl, OCIError *err, const OCIInterval *inter, |
| ub1 lfprec, ub1 fsprec, |
| OraText *buffer, size_t buflen, size_t *resultlen ); |
| |
| sword OCIIntervalToNumber(void *hndl, OCIError *err,const OCIInterval *inter, |
| OCINumber *number); |
| |
| sword OCIIntervalCheck(void *hndl, OCIError *err, const OCIInterval *interval, |
| ub4 *valid ); |
| |
| sword OCIIntervalAssign(void *hndl, OCIError *err, const OCIInterval *ininter, |
| OCIInterval *outinter ); |
| |
| sword OCIIntervalSetYearMonth(void *hndl, OCIError *err, sb4 yr, sb4 mnth, |
| OCIInterval *result ); |
| |
| sword OCIIntervalGetYearMonth(void *hndl, OCIError *err, sb4 *yr, sb4 *mnth, |
| const OCIInterval *result ); |
| |
| sword OCIIntervalSetDaySecond(void *hndl, OCIError *err, sb4 dy, sb4 hr, |
| sb4 mm, sb4 ss, sb4 fsec, OCIInterval *result ); |
| |
| sword OCIIntervalGetDaySecond(void *hndl, OCIError *err, sb4 *dy, sb4 *hr, |
| sb4 *mm, sb4 *ss, sb4 *fsec, const OCIInterval *result ); |
| |
| sword OCIDateTimeToArray(void *hndl, OCIError *err, |
| const OCIDateTime *datetime, const OCIInterval *reftz, |
| ub1 *outarray, ub4 *len, ub1 fsprec); |
| |
| sword OCIDateTimeFromArray(void *hndl, OCIError *err, ub1 *inarray, ub4 len, |
| ub1 type, OCIDateTime *datetime, |
| const OCIInterval *reftz, ub1 fsprec); |
| |
| sword OCIDateTimeGetTimeZoneName(void *hndl, OCIError *err, |
| const OCIDateTime *datetime, |
| ub1 *buf, ub4 *buflen); |
| |
| sword OCIIntervalFromTZ(void *hndl, OCIError *err, const oratext *inpstring, |
| size_t str_len, OCIInterval *result); |
| |
| /*----------------- End Datetime interface Extensions -----------------------*/ |
| |
| /*----------------- Connection Pooling prototypes ---------------------------*/ |
| sword OCIConnectionPoolCreate(OCIEnv *envhp, OCIError *errhp, OCICPool *poolhp, |
| OraText **poolName, sb4 *poolNameLen, |
| const OraText *dblink, sb4 dblinkLen, |
| ub4 connMin, ub4 connMax, ub4 connIncr, |
| const OraText *poolUserName, sb4 poolUserLen, |
| const OraText *poolPassword, sb4 poolPassLen, |
| ub4 mode); |
| |
| sword OCIConnectionPoolDestroy(OCICPool *poolhp, |
| OCIError *errhp, ub4 mode); |
| |
| /*----------------- End Connection Pooling prototypes -----------------------*/ |
| |
| /*-------------------- Session Pooling prototypes ---------------------------*/ |
| |
| sword OCISessionPoolCreate (OCIEnv *envhp, OCIError *errhp, OCISPool *spoolhp, |
| OraText **poolName, ub4 *poolNameLen, |
| const OraText *connStr, ub4 connStrLen, |
| ub4 sessMin, ub4 sessMax, ub4 sessIncr, |
| OraText *userid, ub4 useridLen, |
| OraText *password, ub4 passwordLen, |
| ub4 mode); |
| |
| sword OCISessionPoolDestroy (OCISPool *spoolhp, |
| OCIError *errhp, |
| ub4 mode); |
| |
| sword OCISessionGet (OCIEnv *envhp, OCIError *errhp, OCISvcCtx **svchp, |
| OCIAuthInfo *authhp, |
| OraText *poolName, ub4 poolName_len, |
| const OraText *tagInfo, ub4 tagInfo_len, |
| OraText **retTagInfo, ub4 *retTagInfo_len, |
| boolean *found, ub4 mode); |
| |
| sword OCISessionRelease (OCISvcCtx *svchp, OCIError *errhp, |
| OraText *tag, ub4 tag_len, |
| ub4 mode); |
| |
| /*-------------------- End Session Pooling prototypes -----------------------*/ |
| |
| /* --------------------- OCI Application Context --------------------------*/ |
| |
| |
| sword OCIAppCtxSet(void * sesshndl, void *nsptr, ub4 nsptrlen, |
| void *attrptr, ub4 attrptrlen, |
| void *valueptr, ub4 valueptrlen, |
| OCIError *errhp, ub4 mode); |
| |
| sword OCIAppCtxClearAll(void *sesshndl, void *nsptr, ub4 nsptrlen, |
| OCIError *errhp, ub4 mode); |
| |
| /*-------------------------------- OCIMemStats ------------------------------*/ |
| sword OCIMemStats(void *hndlp, OCIError *errhp, OCIEnv **envhp, |
| ub4 mode, ub4 mode1, oratext *tabname); |
| |
| /*-------------------------------- OCIPing ----------------------------------*/ |
| sword OCIPing (OCISvcCtx *svchp, OCIError *errhp, ub4 mode); |
| |
| /*----------------- Kerberos Authentication prototypes ----------------------*/ |
| |
| sword OCIKerbAttrSet(OCISession *trgthndlp, ub4 cred_use, ub1 *ftgt_ticket, |
| ub4 ticket_len, ub1 *session_key, ub4 skey_len, |
| ub2 ftgt_keytype, ub4 ftgt_ticket_flags, |
| sb4 ftgt_auth_time, sb4 ftgt_start_time, |
| sb4 ftgt_end_time, sb4 ftgt_renew_time, |
| oratext *ftgt_client_principal, |
| ub4 ftgt_client_principal_len, oratext *ftgt_client_realm, |
| ub4 ftgt_client_realm_len, OCIError *errhp); |
| |
| /*------------------- End Kerberos Authentication prototypes ----------------*/ |
| |
| /*------------------- Database Startup/Shutdown prototypes ------------------*/ |
| |
| sword OCIDBStartup (OCISvcCtx *svchp, |
| OCIError *errhp, |
| OCIAdmin *admhp, |
| ub4 mode, |
| ub4 flags); |
| |
| sword OCIDBShutdown(OCISvcCtx *svchp, |
| OCIError *errhp, |
| OCIAdmin *admhp, |
| ub4 mode); |
| |
| /*------------------ End Database Startup/Shutdown prototypes ---------------*/ |
| |
| /*----------------------- OCIClientVersion ------------------------------*/ |
| void OCIClientVersion(sword *major_version, |
| sword *minor_version, |
| sword *update_num, |
| sword *patch_num, |
| sword *port_update_num); |
| /*----------------------- End OCIClientVersion --------------------------*/ |
| |
| /*----------------------- HA Event prototypes ------------------------------*/ |
| |
| sword OCIInitEventHandle(OCIError *errhp, |
| OCIEvent *event, |
| text *str, |
| ub4 size); |
| |
| /*----------------------- End HA Event prototypes --------------------------*/ |
| |
| /*--------------------------------------------------------------------------- |
| PRIVATE FUNCTIONS |
| ---------------------------------------------------------------------------*/ |
| |
| /* the following functions are depracated and should not be used */ |
| #ifdef NEVER |
| sword OCIStmtBindByPos (OCIStmt *stmtp, OCIBind *bindp, OCIError *errhp, |
| ub4 position, void *valuep, sb4 value_sz, |
| ub2 dty, void *indp, ub2 *alenp, ub2 *rcodep, |
| ub4 maxarr_len, ub4 *curelep, ub4 mode); |
| |
| |
| sword OCIStmtBindByName (OCIStmt *stmtp, OCIBind *bindp, OCIError *errhp, |
| const OraText *placeholder, sb4 placeh_len, void *valuep, |
| sb4 value_sz, ub2 dty, void *indp, ub2 *alenp, |
| ub2 *rcodep, ub4 maxarr_len, ub4 *curelep, ub4 mode); |
| |
| sword ocidefn (OCIStmt *stmtp, OCIDefine *defnp, OCIError *errhp, |
| ub4 position, void *valuep, sb4 value_sz, ub2 dty, |
| void *indp, ub2 *rlenp, ub2 *rcodep, ub4 mode); |
| #endif /* NEVER */ |
| |
| #endif /* OCIAP_ORACLE */ |